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(); }

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

这里我选择MicrosoftXPS 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 voidbutton1_Click(object sender, EventArgs e){Workbook workbook = newWorkbook();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 = newPrintDialog();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(); }}}
}

C# 设置Excel打印选项及打印excel文档相关推荐

  1. 怎么将excel表格转换成word文档

    怎么将excel表格转换成word文档?有时候为了工作需要将excel转换成word文档,但是却不知道使用什么工具,下面就简单说一下将excel表格转换成word文档的方法. 1.进行文件之间的转换首 ...

  2. ​Excel如何转换成Word文档?教你如何实现转换

    怎么把excel表格转换成word文档呢?对文件的格式转换相信大家都经历过很多次了,很多时候都是我们在工作中的办公需求.最近有看到有很多小伙伴想了解怎么把excel表格转换成word文档,对于这个比较 ...

  3. Excel转Word,Excel导出Word,利用Excel表批量生成Word文档,邮件合并进阶版

    单击播放视频教材 利用Excel数据批量生成Word文档升级版,Excel转W 01需求概述 假设有图1所示的数据,需要批量生成WORD成绩通知单,通知单必须遵循图2的样式. (案例中的姓名.学校名称 ...

  4. excel拆分成多个文档

    今天跟大家分享一下excel拆分成多个文档 1.打开演示文件,要求将文件按照部门拆分为多个独立的文档. 2.首先鼠标单击如下图选项 3.然后点击[汇总拆分]-[拆分工作表] 4.将[表头行数]设置为2 ...

  5. 怎样可以把excel表格转换成word文档

    在处理一些文档时,有时会遇到需要将excel表格内容全部放到word文档中,通常只是需要excel的部分数据内容时,直接通过复制,然后粘贴到word文档中即可,但是如果需要将excel表格所以内容都转 ...

  6. 微信公众号怎么添加Word、Excel、PPT、PDF文档下载链接?

    因为公司业务的增长,公司着急需要招聘几个新人到新开的业务线,火线上岗.考虑到公司公众号运营多年,有一定的用户基础,所以HR小姐姐在征求了老板的意见后,决定在公众号发表一篇招聘文.在征求了几个部门的用人 ...

  7. excel拆分成多个文档怎么做?

    今天跟大家分享一下excel拆分成多个文档怎么做? 1.打开演示文件,要求将多个工作表拆分为独立的工作簿 2.首先我们点击下图选项 3.然后选择[汇总拆分]-[拆分工作簿] 4.勾选工作表 5.点击[ ...

  8. Java 打印PDF文档 - 指定打印机、自定义纸张大小、设置打印参数、显示打印对话框等

    这篇文章介绍如何在Java应用程序中打印PDF文档以及进行一些打印设置,包括指定打印机.自定义纸张大小.设置打印参数.以及显示打印对话框等. 导入jar文件 本文所使用的PDF类库是Spire.PDF ...

  9. python办公自动化---将excel表格插入到doc文档指定位置

    应用场景: 目录 应用场景: 问题描述1 问题描述2: 小问题: 需要引入的包 总结: 要求将excel中的表格插入到word文档中 将doc格式转为docx 将表格插入文档 如有需要可以将docx文 ...

最新文章

  1. 技术图文:如何利用C# + Echarts 绘制「堆叠条形图」?
  2. python中的魔术方法
  3. Jeecg平台扩展性不好的地方收集启动。
  4. 力扣209-长度最小的子数组(Java,双指针解法)
  5. Flink java模拟生成自定义流式数据
  6. 【Antlr】rule expr: must label all alternatives or none
  7. python 链接spark_Spark大数据分布式处理实战:一文带你走进大数据世界
  8. java编译过程_java 程序编译和运行过程详解
  9. 高薪程序员晒出银行转账记录,网友:羡慕
  10. Java后端开发工作 - 写接口
  11. 客服回复话术100句
  12. 华为防火墙虚拟系统实验
  13. java 检测u盘_java实现监听u盘示例分享
  14. java程序员必读书籍
  15. SYD8811 内存和代码的分布
  16. 吐血整理!14个编写Spring MVC控制器的实用小技巧
  17. 使用Synology群晖内置web station和榴莲壳发布自己的网站(二)设置Web Station
  18. 数据库隔离级别(收藏)
  19. Bartender 4 for Mac(菜单栏应用管理软件)
  20. windows屏幕捕捉BitBlt函数鼠标闪烁问题

热门文章

  1. Manjaro、ArchLinux 网易云音乐无法启动修复记录
  2. HMM(Hidden Markov Model)
  3. 你真的知道Win 10中注销、睡眠、休眠的区别么?
  4. linux的基础简答题,Linux认证考试试题及答案「简答题」
  5. Linux基本操作知识一
  6. 【Python网络蜘蛛】:基础 - 爬虫的基本原理
  7. 全球与中国的前50家最佳网站
  8. 深度学习-BP神经网络(python3代码实现)
  9. 考研数据结构之线性表(1.7)——练习题之分离单链表的奇数偶数(C表示)
  10. C++产生随机数函数rand()