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(); }
运行程序会出现如下对话框:
这里我选择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文档相关推荐
- 怎么将excel表格转换成word文档
怎么将excel表格转换成word文档?有时候为了工作需要将excel转换成word文档,但是却不知道使用什么工具,下面就简单说一下将excel表格转换成word文档的方法. 1.进行文件之间的转换首 ...
- Excel如何转换成Word文档?教你如何实现转换
怎么把excel表格转换成word文档呢?对文件的格式转换相信大家都经历过很多次了,很多时候都是我们在工作中的办公需求.最近有看到有很多小伙伴想了解怎么把excel表格转换成word文档,对于这个比较 ...
- Excel转Word,Excel导出Word,利用Excel表批量生成Word文档,邮件合并进阶版
单击播放视频教材 利用Excel数据批量生成Word文档升级版,Excel转W 01需求概述 假设有图1所示的数据,需要批量生成WORD成绩通知单,通知单必须遵循图2的样式. (案例中的姓名.学校名称 ...
- excel拆分成多个文档
今天跟大家分享一下excel拆分成多个文档 1.打开演示文件,要求将文件按照部门拆分为多个独立的文档. 2.首先鼠标单击如下图选项 3.然后点击[汇总拆分]-[拆分工作表] 4.将[表头行数]设置为2 ...
- 怎样可以把excel表格转换成word文档
在处理一些文档时,有时会遇到需要将excel表格内容全部放到word文档中,通常只是需要excel的部分数据内容时,直接通过复制,然后粘贴到word文档中即可,但是如果需要将excel表格所以内容都转 ...
- 微信公众号怎么添加Word、Excel、PPT、PDF文档下载链接?
因为公司业务的增长,公司着急需要招聘几个新人到新开的业务线,火线上岗.考虑到公司公众号运营多年,有一定的用户基础,所以HR小姐姐在征求了老板的意见后,决定在公众号发表一篇招聘文.在征求了几个部门的用人 ...
- excel拆分成多个文档怎么做?
今天跟大家分享一下excel拆分成多个文档怎么做? 1.打开演示文件,要求将多个工作表拆分为独立的工作簿 2.首先我们点击下图选项 3.然后选择[汇总拆分]-[拆分工作簿] 4.勾选工作表 5.点击[ ...
- Java 打印PDF文档 - 指定打印机、自定义纸张大小、设置打印参数、显示打印对话框等
这篇文章介绍如何在Java应用程序中打印PDF文档以及进行一些打印设置,包括指定打印机.自定义纸张大小.设置打印参数.以及显示打印对话框等. 导入jar文件 本文所使用的PDF类库是Spire.PDF ...
- python办公自动化---将excel表格插入到doc文档指定位置
应用场景: 目录 应用场景: 问题描述1 问题描述2: 小问题: 需要引入的包 总结: 要求将excel中的表格插入到word文档中 将doc格式转为docx 将表格插入文档 如有需要可以将docx文 ...
最新文章
- 技术图文:如何利用C# + Echarts 绘制「堆叠条形图」?
- python中的魔术方法
- Jeecg平台扩展性不好的地方收集启动。
- 力扣209-长度最小的子数组(Java,双指针解法)
- Flink java模拟生成自定义流式数据
- 【Antlr】rule expr: must label all alternatives or none
- python 链接spark_Spark大数据分布式处理实战:一文带你走进大数据世界
- java编译过程_java 程序编译和运行过程详解
- 高薪程序员晒出银行转账记录,网友:羡慕
- Java后端开发工作 - 写接口
- 客服回复话术100句
- 华为防火墙虚拟系统实验
- java 检测u盘_java实现监听u盘示例分享
- java程序员必读书籍
- SYD8811 内存和代码的分布
- 吐血整理!14个编写Spring MVC控制器的实用小技巧
- 使用Synology群晖内置web station和榴莲壳发布自己的网站(二)设置Web Station
- 数据库隔离级别(收藏)
- Bartender 4 for Mac(菜单栏应用管理软件)
- windows屏幕捕捉BitBlt函数鼠标闪烁问题
热门文章
- Manjaro、ArchLinux 网易云音乐无法启动修复记录
- HMM(Hidden Markov Model)
- 你真的知道Win 10中注销、睡眠、休眠的区别么?
- linux的基础简答题,Linux认证考试试题及答案「简答题」
- Linux基本操作知识一
- 【Python网络蜘蛛】:基础 - 爬虫的基本原理
- 全球与中国的前50家最佳网站
- 深度学习-BP神经网络(python3代码实现)
- 考研数据结构之线性表(1.7)——练习题之分离单链表的奇数偶数(C表示)
- C++产生随机数函数rand()