【问题标题】:Print Specific worksheet in Excel在 Excel 中打印特定工作表
【发布时间】:2019-12-12 12:49:29
【问题描述】:

我有一个 c# 函数,可以从它的路径打印一个 excel 文件。 excel文件包含多个工作表,我希望能够选择要打印的工作表

private void PrintExcelDocument()
{
    var process = new Process();

    process.StartInfo = new ProcessStartInfo()
    {
        WindowStyle = ProcessWindowStyle.Hidden,
        Verb = "print",
        FileName = Path,
        UseShellExecute = true,
        CreateNoWindow = true
    };

    process.Start();

    // Fermer le processus s'il est encore ouvert
    if (!process.HasExited)
    {
        process.WaitForExit(5000);
    }

    process.Close();
}

如何指定要打印所有工作表还是特定工作表?目前,它会打印最后打开的文件(当我上次保存文件时)。

我尝试使用工作簿名称添加Arguments,但没有成功。此外,我还没有找到任何关于进程中 Excel 打印的文档。我知道我可以将 Microsoft 的 dll 用于 Excel (Microsoft.Office.Interop.Excel),但我想尽可能避免使用它。

【问题讨论】:

    标签: c# excel printing


    【解决方案1】:

    如果您不喜欢使用 Excel Interop COM,考虑到您正在使用 .xlsx 文件格式,这可能会对您有所帮助。

    1. 如果你用 Hex-editor 打开一个 excel 文件,你会注意到文件签名是 PK(zip 文件格式),这意味着它基本上是压缩的 XML 文件。
    2. 因此,您只需右键单击 excel.xlsx 文件,将其解压缩,然后在“\xl\worksheets”文件夹中即可看到“sheet[1~10].xml”文件
    3. 现在使用以下代码获取所有工作表
    using System.IO;
    string[] file_arr = Directory.GetFiles(@"C:\path\to\files\", "*.xlsx");
    

    【讨论】:

      猜你喜欢
      • 2015-05-17
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 2012-10-02
      相关资源
      最近更新 更多