【问题标题】:Print Excel Worksheet/Workbook打印 Excel 工作表/工作簿
【发布时间】:2015-12-16 09:25:06
【问题描述】:

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

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

我以前这样做过(使用办公室互操作):

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 的情况下打印工作簿/工作表?

【问题讨论】:

    标签: c# winforms printing excel-interop closedxml


    【解决方案1】:

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

    其中的代码可用于以 Excel(和兼容的应用程序)理解的格式编写数据,但它们通常不提供(链接到)用户界面,也不提供呈现 Excel 内容的方法文件转换为另一种文件格式或打印机。因为那超出了图书馆的范围。读取和写入文件是一回事,正确渲染它们的内容是另一回事。

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

    在使用库生成文档时,您始终只能use interop to print。或者你可以send the "print" verb to Excel,它将使用默认设置打印到默认打印机。

    【讨论】:

    • "默认打印机的默认设置" 你的意思是 Excel 文件的默认设置?所以我可以使用“打印动词”和 ClosedXml PrintArea 来打印一个工作表?
    • 不知道,试试看。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多