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工作表的其中一部分,或打印时每页都有表头,或把工作...
  • Eiceblue
  • Eiceblue
  • 2016年05月18日 17:13
  • 2974

C#创建与Excel打印输出(转载)

摘要:本文介绍了Excel对象、C#中的受管代码和非受管代码,并介绍了COM组件在.NET环境中的使用。 0 引言     Excel是微软公司办公自动化套件中的一个软件,他主要是用来处理电子表格...
  • kirawoo
  • kirawoo
  • 2015年06月19日 08:34
  • 961

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

Excel.Application myExcel = new Excel.Application(); Excel.Workbook workbookData = myExcel.Applicat...
  • wanmingtom
  • wanmingtom
  • 2011年01月09日 18:46
  • 11552

C#关于Excel导出及打印

添加DLL文件   Using: using Excel = Microsoft.Office.Interop.Excel;   调用: //Excel模板文件 string str...
  • u014741497
  • u014741497
  • 2014年04月16日 09:26
  • 2898

c# 对excel数据进行打印

c# 对excel数据进行打印今天写的主要就是对报表的打印部分,打印栏中一个有三个功能,分别是打印浏览,直接打印,打印设置。当点击按钮时弹出菜单栏进行打印。这个地方并不难,先在窗体的任意地方建立一个M...
  • cyg2001
  • cyg2001
  • 2016年08月11日 18:13
  • 950

C#创建、打开、读取、写入、保存Excel,Excel打印输出

摘要:本文介绍了Excel对象、C#中的受管代码和非受管代码,并介绍了COM组件在.NET环境中的使用。关键词:受管代码;非受管代码;Excel对象;动态连接库0 引言Excel是微软公司办公自动化套...
  • baogreat
  • baogreat
  • 2007年12月06日 22:22
  • 2830

axFramerControl控件对EXCEL操作的一些方法!

this.axFramerControl.Open("E:\\5sheet.xls", true, "Excel.Sheet", "", "");             this.axFramer...
  • devgis
  • devgis
  • 2013年08月12日 16:33
  • 3185

C#巧用Excel模版变成把Table打印出来

将一个做好的Excel模版,通过程序填上数据然后打印出来这个需求有两种方法一种是通过代码打开Excel模版然后填入数据然后再打印。 第二种方法就是我将要介绍的 1、将Excel设置好格式另存为HT...
  • gwblue
  • gwblue
  • 2014年08月27日 09:52
  • 5359

C#使用指定打印机打印Word,Excel等Office文件和打印PDF文件的代码

http://www.cnblogs.com/xiachufeng/archive/2010/07/31/1789136.html 打印,是做开发的人的经久不变的话题。 今天,用实...
  • plean
  • plean
  • 2012年03月31日 16:48
  • 2510

winform 根据Excel模版打印文件

Dim app As New Excel.Application Dim workbook As Excel.Workbook Dim worksheet As Excel.Worksheet Di...
  • nvhaixx
  • nvhaixx
  • 2013年12月06日 10:50
  • 2457
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 设置Excel打印选项及打印excel文档
举报原因:
原因补充:

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