繁体   English   中英

在 Excel 中打印特定工作表

[英]Print Specific worksheet in Excel

我有 ac# 函数,可以从它的路径打印一个 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 ),但我想尽可能避免使用它。

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

  1. 如果你用十六进制编辑器打开一个 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");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM