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

转载 2017年10月13日 14:37:44

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

    }

}
复制代码

相关文章推荐

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

C# 设置Excel打印选项及打印excel文档 打印Excel文档是一个很常见的操作,但有时候我们会碰到各种不同的打印需求,例如只打印一个Excel工作表的其中一部分,或打印时每页都有表头,或把工作...

使用POI生成Excel文档并设置打印样式

package test; 2 3import java.io.FileOutputStream; 4import java.io.IOException; 5 6import org.ap...

C# 导出 Excel 和相关打印设置(不断更新中)

Excel.Application myExcel = new Excel.Application(); Excel.Workbook workbookData = myExcel.Applicat...

【c#】Aspose打印到Excel模板已经合并单元格

/// /// 审核汇总 /// /// /// protected void linkPsjg_Click(o...

C#关于Excel导出及打印

添加DLL文件   Using: using Excel = Microsoft.Office.Interop.Excel;   调用: //Excel模板文件 string str...

C# 保护Excel文档

C# 保护Excel文档 说到保护excel文档,我们首先想到的是密码保护的方式,但excel与word有点不一样,一般情况下,每个excel工作薄都或多或少地含有一定数量的工作表,因此保护excel...

C# NPOI 导入与导出Excel文档 兼容xlsx, xls

附加:C# NPOI 日期格式 http://www.cnblogs.com/lazyneal/p/6795941.html 下面附上给我提示的博客: http://www.c...

C#在线预览文档(word,excel,pdf,txt,png)

C#在线预览文档(word,excel,pdf,txt,png) 1、预览方式:将word文件转换成html文件然后预览html文件 2、预览word文件:需要引入Interop.Micr...

C# 操作Excel文档

最近做了个小项目,涉及到了数据导出到Excel文档,微软对Excel的接口操作基本全支持,主要通过阅读MSDN来完成的(可能有存在错误的地方,欢迎批评指正),现在汇总一下: 项目需要添加Micros...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)