打印 Excel Worksheet/Workbook

Print Excel Worksheet/Workbook

我正在尝试提高 C# Winform 项目的性能。

以前,生成一个 Excel 文件需要 100000 毫秒(使用 Office.Interop.Excel)。 使用 ClosedXml 大约需要 5000 毫秒。非常好。但现在我需要打印此 Excel 文档(仅工作表或整个工作簿)

我以前这样做过(使用 office interop):

public void PrintCurrentWorksheet()
{
    this._activeWorksheet.PrintOut(Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
}
public void PrintWorkbook()
{
    this._activeWorbook.PrintOut(Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
}

但是现在_activeWorkbook_activeWorksheet的类型是XLWorkbookIXLWorksheet。所以没有Printout方法。我找不到打印方法,我想没有,因为 OpenXml 不依赖于 Excel。我说得对吗?

我找不到 Shell 打印工作表的命令。

那么,有没有不使用 Interop 打印 Workbook/Worksheet 的简单方法?

与大多数库一样,允许您读写 Excel 兼容文件的库是“headless”。

它们中的代码可用于以 Excel(和兼容的应用程序)理解的格式写入数据,但它们通常不提供(link 到 a)用户界面,也无法将 Excel 文件的内容呈现为另一种文件格式或打印机。因为那不在图书馆的范围之内。读写文件是一回事,正确呈现文件内容又是另一回事。

有些库支持打印 Excel 文件,例如 Aspose

您始终只能use interop to print, while generating the document using libraries. Or you can send the "print" verb to Excel,这将使用默认打印机的默认设置进行打印。