C# 设置Excel打印选项及打印excel文档

C# 设置Excel打印选项及打印excel文档

打印Excel文档是一个很常见的操作,但有时候我们会碰到各种不同的打印需求,例如只打印一个Excel工作表的其中一部分,或打印时每页都有表头,或把工作表中超出1页所有内容打印到1页上等等,这时我们需要对Excel的打印选项进行设置。这篇文章主要是分享如何使用Excel组件及C#来设置一些常见的Excel打印选项及打印Excel文档。

下面这个Excel工作表共含有17行,20列数据:

                       

目标:将第7, 8行的所有数据打印到一页上,并打印表头(标题行)。

创建一个WinForm项目,使用如下命名空间:

using System;
using System.Drawing.Printing;
using System.Windows.Forms;
using Spire.Xls;

 

步骤1创建一个新的workbook对象并加载Excel文档。

Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.xlsx");

 

步骤2获取该Excel文档的第一个工作表,并设置打印选项。

Worksheet sheet = workbook.Worksheets[0];

 

下面列出几个常设置的打印选项:

设置打印区域/范围:

sheet.PageSetup.PrintArea = "A7:T8";

 

设置打印表头(标题行):

sheet.PageSetup.PrintTitleRows = "$1:$1";

 

设置excel工作表缩放为一页宽一页高:

sheet.PageSetup.FitToPagesWide = 1;
sheet.PageSetup.FitToPagesTall = 1;

这里可以设置它们的值为0或1来改变打印效果以满足不同需求。 

 

除此之外还可以设置页面方向及打印页面大小等:

设置页面方向:

sheet.PageSetup.Orientation = PageOrientationType.Portrait;

 

设置打印页面大小:

sheet.PageSetup.PaperSize = PaperSizeType.PaperA3;

 

步骤3创建一个新的PrintDialog对象,设置dialog属性及打印页面范围并打印文档。

PrintDialog dialog = new PrintDialog();
dialog.AllowPrintToFile = true;
dialog.AllowCurrentPage = true;
dialog.AllowSomePages = true;
dialog.AllowSelection = true;
dialog.UseEXDialog = true;
dialog.PrinterSettings.Duplex = Duplex.Simplex;
dialog.PrinterSettings.FromPage = 0;
dialog.PrinterSettings.ToPage = 8;
dialog.PrinterSettings.PrintRange = PrintRange.SomePages;
workbook.PrintDialog = dialog;
PrintDocument pd = workbook.PrintDocument;
if (dialog.ShowDialog() == DialogResult.OK)
{ pd.Print(); }

 

运行程序会出现如下对话框:

 

这里我选择Microsoft XPS Document Writer将这个excel文档打印为XPS格式,得到的XPS文件如下:

 

全部代码:

using System;
using System.Drawing.Printing;
using System.Windows.Forms;
using Spire.Xls;namespace Print_Excel_in_csharp
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){Workbook workbook = new Workbook();workbook.LoadFromFile("Sample.xlsx");           Worksheet sheet = workbook.Worksheets[0];sheet.PageSetup.PrintArea = "A7:T8";sheet.PageSetup.PrintTitleRows = "$1:$1";sheet.PageSetup.FitToPagesWide = 1;sheet.PageSetup.FitToPagesTall = 1;//sheet.PageSetup.Orientation = PageOrientationType.Landscape;//sheet.PageSetup.PaperSize = PaperSizeType.PaperA3;
           PrintDialog dialog = new PrintDialog();dialog.AllowPrintToFile = true;dialog.AllowCurrentPage = true;dialog.AllowSomePages = true;dialog.AllowSelection = true;dialog.UseEXDialog = true;dialog.PrinterSettings.Duplex = Duplex.Simplex;dialog.PrinterSettings.FromPage = 0;dialog.PrinterSettings.ToPage = 8;dialog.PrinterSettings.PrintRange = PrintRange.SomePages;workbook.PrintDialog = dialog;PrintDocument pd = workbook.PrintDocument;if (dialog.ShowDialog() == DialogResult.OK){ pd.Print(); }}}}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398322.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决问题:修改tomcat启动后服务器url

解决问题:修改tomcat启动后服务器url 解决方式:通过在pom.xml配置文件中使用configuration标签的子标签path可以修改http://localhost:8080后跟什么路径。如path标签中为/,则tomcat启动后服务器url为http://localhost:8080/

用js来实现那些数据结构 第一章

在开始正式的内容之前,不得不说说js中的数据类型和数据结构,以及一些比较容易让人混淆的概念。那么为什么要从数组说起?数组在js中是最常见的内存数据结构,数组数据结构在js中拥有很多的方法,很多初学者记不清数组的大…

excel密码忘记了怎么办

2019独角兽企业重金招聘Python工程师标准>>> Excel电子表格应用程序堪称Office中的“王牌应用”,能够快速灵活地整理各种大数据,在各行各业中发挥着不可替代的作用。因此,excel文档的跋扈密码比其他文档多,除了常设的打…

Smobiler 4.4 更新预告 Part 1(Smobiler能让你在Visual Studio上开发APP)

在4.4版本中,大家对产品优化的一些建议和意见进行了相应的优化和修复,同时,还新增了一些令人激动的功能和插件。 下面先为大家介绍4.4版本中Smobiler的优化和修复: 优化 1, PageView的AutoPlay默认属性改为True。 2&am…

cad lisp 二次抛物线_学习CAD的五个段位,你是青铜还是王者?

大家学习AutoCAD多久了,从入门到精(fang)通(qi),小编总结了5个段位,大家对号入座。此时视口内的三维实体并没有任何变化,需要后续使用soldraw才能进行转换。SOLVIEW创建的视口经过SOLDRAW处理后,会生成表示实体轮廓和边…

Python 基础知识(二)

一、基础数据类型 1、数字int 数字主要是用于计算用的,使用方法并不是很多,就记住一种就可以: #bit_length() 当十进制用二进制表示时,最少使用的位数 # -*- coding:UTF-8 -*- v 11 data v.bit_length() print(data) # 二进制&a…

深入理解JavaWeb(五)——过滤器和监听器

深入理解JavaWeb(五)——过滤器和监听器 摘要:在基于Java-Web核心技术的开发应用中,为了一些特定的用途或目的,那么Filter和Listener就要闪亮登场了。在本文中我们来聊一聊Servlet规范中的另俩技术的核心知识点&#x…

ps一点等于多少厘米_劝告大家:女人40岁后,体重多少算正常?太瘦也不好

阅读本文前,请您先点击上面的“蓝色字体”,再点击“关注”,这样您就可以继续免费收到文章了。每天都有分享,完全是免费订阅,请放心关注。由于身高、骨骼、体型和体重的不同,与男性相比,女性将相…

java xml转map_java练习本(原每日一练)(20190514)

名人名言昨日翻译“The No. 1 reason people fail in life is because they listen to their friends, family, and neighbors.”——Napoleon Hill“人们生活中失败的第一个原因是他们听取朋友、家人和邻居的意见。”——拿破仑希尔今日名言“Your time is limited, so don’t…

? SegmentFault Hackathon 文艺复兴上海站作品集 - 获奖篇

承上回,在 Day 1 中,石墨文档、Agora.io 声网和 HPE 的技术团队针对自家的 SDK、API 等作了深度介绍,今天就来看看我们的开发者是如何将作品和服务关联起来的吧。 跳蚤市场 24 小时的编程,艺术家都将什么作品搬上自己的摊位&#…

华为手机云闪付付款码如何截图_云闪付乘车码,它带着优惠又来了

云闪付乘车码又来了!想必这段时间大家有些(甚是)想念薅羊毛的日子想起那快乐时光嘴角总是不经意的偷偷乐不多说了,直接上优惠特别提醒:1分钱乘公交5折乘地铁......详戳▼▼▼银联信用卡1分钱乘公交活动时间:2019年12月6日—2019年…

ChemDraw教程:如何查看和删除俗名

化学范畴里,允许用俗名表示ChemDraw原子标记或原子标记的一部分,可以定义俗名的快捷键也可以自由查看或删除俗名,熟练掌握可以提高ChemDraw软件使用效率,下面将具体介绍此部分内容。 一、查看俗名 查看已定义俗名的方法有两种&…

谈Find指令

Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系…

k8s部署tomcat及web应用_部署 Spring Boot 应用到 K8S 教程

点击上方 Java后端,选择 设为星标优质文章,及时送达作者:qingmuqingmu.io/2020/04/08/Spring-Boot-Operator-User-Guide/前言在Kubernetes中部署spring boot应用整体上来说是一件比较繁琐的事情,而Spring Boot Operator则能带给你…

Web性能优化分析

如果你的网站在1000ms内加载完成,那么会有平均一个用户停留下来。2014年,平均网页的大小是1.9MB。看下图了解更多统计信息。 直击现场 《HTML开发MacOSApp教程》 http://pan.baidu.com/s/1jG1Q58M 网站的核心内容需要在1000ms内呈现出来。如果失败了&a…

闭包/Block当成函数参数实现回调

2019独角兽企业重金招聘Python工程师标准>>> Swift // MARK:// MARK: 获取数据/// 获取数据class func toolLoadData(completion:(finish: String) -> ()? ,content: String) {self .nextStepRequest({ (finish) -> ()? in// 接收到数据 调用 block 传递数据…

使用labview读取一副位图,并进行BCG校准(或修改其BCG)程序解析

进行图像处理第一步肯定就是要读取一副图片,然后再进行图像的BCG校准。 首先讲解一下用到的函数第一个函数为IMAQ Create,位于 视觉与运动--Vision Utilities---Image Management---IMAQ create 函数如图,对于如何看函数功能,还是…

实现生成小学四则运算练习题

实现小学四则运算练习题 1.题目要求 本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。 题目1: 我们在刚开始上课的时候介绍…

[转] 64位windows下添加postgreSQL odbc数据源

系统环境:windows7 64位 postgreSQL9.0(64bit)ps:安装postgreSQL时确定安装了odbc驱动。问题:点击“开始-》控制面板-》管理工具-》数据源(ODBC)-》用户DSN-》添加”,未出现postgreSQL关联选项。…

Mysql ---Sqlserver数据迁移到Mysql(Mysql建表迁移数据)

1 试用了MysqlWorkBench的数据迁移功能 以为能实现:建立跟Sqlserver一样的表结构和视图的功能,sqlserver的数据迁移到mysql 实际上发现:即使勾选了表和视图,实际上却只能建立表结构。 视图结构,表数据,都没…