Excel 文档的常规打印操作十分简单。然而,一旦涉及特殊打印需求,情况就会变得比较麻烦。比如,仅打印工作表中的选定区域,在每一页重复打印标题行,或是将工作表调整至一页内打印,都需要一些特定的设置与操作。本文将介绍如何使用 Spire.XLS for .NET 在 C# 中通过页面设置对 Excel 打印选项进行设置,以及如何将 Excel 文档发送到打印机。
安装 Spire.XLS for .NET
首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.XLS
C# 通过页面设置设置 Excel 打印选项
Excel 的页面设置功能提供了多种选项,用于控制工作表的打印方式。比如,是否打印批注、是否打印网格线,以及指定要打印的单元格区域等。Spire.XLS 提供了 PageSetup 对象来设置这些 Excel 打印选项。具体步骤如下:
- 创建一个 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 通过 Workbook.Worksheets[index] 属性获取指定工作表。
- 通过 Workheet.PageSetup 属性获取 PageSetup 对象。
- 通过 PageSetup 对象下的属性设置页边距、打印区域、标题行、打印质量等。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
- C#
using Spire.Xls;
namespace PrintOptions
{
class Program
{
static void Main(string[] args)
{
// 创建workbook对象
Workbook workbook = new Workbook();
// 加载Excel文档
workbook.LoadFromFile("测试.xlsx");
// 获取第一张工作表
Worksheet worksheet = workbook.Worksheets[0];
// 获取PageSetup对象
PageSetup pageSetup = worksheet.PageSetup;
// 设置页边距
pageSetup.TopMargin = 0.3;
pageSetup.BottomMargin = 0.3;
pageSetup.LeftMargin = 0.3;
pageSetup.RightMargin = 0.3;
// 指定打印区域
pageSetup.PrintArea = "A1:F7";
// 指定标题行
pageSetup.PrintTitleRows = "$1:$2";
// 允许打印行/列标题
pageSetup.IsPrintHeadings = true;
// 允许打印网格线
pageSetup.IsPrintGridlines = true;
// 允许打印显示在工作表上的注释
pageSetup.PrintComments = PrintCommentType.InPlace;
// 设置打印质量(dpi)
pageSetup.PrintQuality = 300;
// 允许以黑白模式打印工作表
pageSetup.BlackAndWhite = true;
// 设置打印顺序
pageSetup.Order = OrderType.OverThenDown;
// 将工作表打印到一页纸上
pageSetup.IsFitToPage = true;
// 保存结果文档
workbook.SaveToFile("页面打印选项.xlsx", ExcelVersion.Version2016);
}
}
}
C# 使用打印对话框打印 Excel 文档
打印对话框可让用户选择特定打印任务的选项。例如,用户可以指定要使用的打印机。以下是使用 Spire.XLS for .NET 将 Excel 文档发送到打印对话框的步骤:
- 创建 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 创建 PrintDialog 类的对象。
- 通过 PrintDialog 对象下的属性指定打印机设置。
- 将打印对话框应用到工作簿。
- 通过 Workbook.PrintDocument 属性从工作簿中获取 PrintDocument 对象。
- 使用 PrintDocument.Print() 方法调用打印对话框并开始打印。
- C#
using System;
using Spire.Xls;
using System.Drawing.Printing;
using System.Windows.Forms;
namespace PrintExcelUsingPrintDialog
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// 创建workbook对象
Workbook workbook = new Workbook();
// 加载Excel文档
workbook.LoadFromFile("测试.xlsx");
// 将工作表打印到一页纸上
PageSetup pageSetup = workbook.Worksheets[0].PageSetup;
pageSetup.IsFitToPage = true;
// 创建PrintDialog对象
PrintDialog dialog = new PrintDialog();
// 指定打印机设置
dialog.AllowCurrentPage = true;
dialog.AllowSomePages = true;
dialog.AllowSelection = true;
dialog.UseEXDialog = true;
dialog.PrinterSettings.Duplex = Duplex.Simplex;
// 将打印对话框应用到工作簿
workbook.PrintDialog = dialog;
// 创建PrintDocument对象
PrintDocument printDocument = workbook.PrintDocument;
// 调用打印对话框
if (dialog.ShowDialog() == DialogResult.OK)
{
printDocument.Print();
}
}
}
}
C# 静默打印 Excel 文档
如果不想看到打印对话框或打印过程,可以将 Excel 文档静默地打印到指定的打印机。具体步骤如下:
- 创建 Workbook 类的对象。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 将打印控制器设置为 StandardPrintController,以防止显示打印过程。
- 通过 Workbook.PrintDocument.PrinterSettings 属性从工作簿中获取打印机设置对象。
- 通过 PrinerSettings 对象下的属性指定打印机名称、双面模式和打印页数。
- 使用 Workbook.PrintDocument.Print() 方法打印工作簿。
- C#
using Spire.Xls;
using System.Drawing.Printing;
namespace SilentlyPrint
{
class Program
{
static void Main(string[] args)
{
// 创建Workbook对象
Workbook workbook = new Workbook();
// 加载Excel文档
workbook.LoadFromFile("测试.xlsx");
// 将工作表打印到一页纸上
PageSetup pageSetup = workbook.Worksheets[0].PageSetup;
pageSetup.IsFitToPage = true;
// 将打印控制器设置为StandardPrintController,防止显示打印过程
workbook.PrintDocument.PrintController = new StandardPrintController();
// 从工作簿中获取打印机设置
PrinterSettings settings = workbook.PrintDocument.PrinterSettings;
// 指定打印机名称、双面打印模式和打印页数
settings.PrinterName = "HP LaserJet P1007";
settings.Duplex = Duplex.Simplex;
settings.FromPage = 1;
settings.ToPage = 3;
// 打印工作簿
workbook.PrintDocument.Print();
}
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。