博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 设置Excel打印选项及打印excel文档
阅读量:6234 次
发布时间:2019-06-22

本文共 3033 字,大约阅读时间需要 10 分钟。

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

打印Excel文档是一个很常见的操作,但有时候我们会碰到各种不同的打印需求,例如只打印一个Excel工作表的其中一部分,或打印时每页都有表头,或把工作表中超出1页所有内容打印到1页上等等,这时我们需要对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://hphna.baihongyu.com/

你可能感兴趣的文章
python中self cls init的理解
查看>>
java:类集操作总结
查看>>
Flake8学习
查看>>
SpringBoot项目eclipse运行正常maven install打包启动后报错ClassNotFoundException
查看>>
ASP.NET Core的身份认证框架IdentityServer4(9)-使用OpenID Connect添加用户认证
查看>>
[Python] String Formatting
查看>>
lapis 处理接收到的json 数据
查看>>
【spring boot logback】日志使用自定义的logback-spring.xml文件后,application.properties中关于日志的相关配置还会起作用么...
查看>>
Ad Hoc Distributed Queries的启用与关闭
查看>>
java工具类POI导出word
查看>>
openwrt使用list
查看>>
shell语言
查看>>
C++动态分配内存
查看>>
Android Studio工程Gradle编译报错
查看>>
桌面小部件开发
查看>>
Unity3d dll 热更新 基础框架
查看>>
spring boot整合mybatis+mybatis-plus
查看>>
深度学习利器:TensorFlow在智能终端中的应用——智能边缘计算,云端生成模型给移动端下载,然后用该模型进行预测...
查看>>
如何查看表和索引的统计信息
查看>>
word文档的动态添加数据
查看>>