【问题标题】:How to Programmatically Create OOXML Strict Documents如何以编程方式创建 OOXML 严格文档
【发布时间】:2022-08-05 19:34:21
【问题描述】:

使用“另存为”时,可以在 Excel 文件类型下拉列表中手动将 Excel 电子表格另存为“严格打开 XML”文件,而不是将其保存为默认的过渡 OOXML 文件。对于 OOXML 标准的严格和过渡文件格式变体,文件格式是相同的 .xlsx。

我如何通过自动化工作流程以编程方式做同样的事情,例如C#?目的是将过渡 Excel 文件批量转换为严格的 Excel 文件。

我发现 Office XML SDK 的这些代码 sn-ps 部分:

我可以使用它们或其他方式进行从过渡到严格的批量转换吗?

    标签: excel format spreadsheet openxml


    【解决方案1】:

    经过广泛研究后,我发现唯一可能的方法是使用 Excel.Interop 并让您的 Excel 安装在后台处理转换。这不是一个很好的解决方案,因为它依赖于 Excel,但它是一种编程方法。

    您可以在此处找到 Excel.Interop 包:https://www.nuget.org/packages/Microsoft.Office.Interop.Excel

    我遇到了一个问题,包找不到我的 Excel 安装,所以我必须对您计算机上的 Excel 互操作 DLL 进行新的引用。 Add reference > Browse > C:\Windows\assembly\GAC\Microsoft.Office.Interop.Excel 并从此处的文件夹中选择 DLL。我还在此路径C:\Windows\assembly\GAC_MSIL\office 的子文件夹中添加了 DLL

    转换代码

    using Excel = Microsoft.Office.Interop.Excel;
    
    void Convert_Transitional_to_Strict(string input_filepath, string output_filepath)
    {
        Excel.Application app = new Excel.Application(); // Create Excel instance
        app.DisplayAlerts = false; // Don't display any Excel prompts
        Excel.Workbook excelWorkbook = app.Workbooks.Open(input_filepath); // Create workbook instance and open Excel Workbook for conversion
        excelWorkbook.SaveAs(output_filepath, 61); // Save file as .xlsx Strict
        excelWorkbook.Close(); // Close the Workbook
        app.Quit(); // Quit Excel Application
    }
    

    PS。如果有人发现使用 Open XML SDK 或其他 C# 框架的编程方法,请仍然发布您的答案。

    【讨论】:

      猜你喜欢
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      • 2012-09-10
      相关资源
      最近更新 更多