在使用“另存为”而不是将其保存为默认的过渡OOXML文件时,可以在Excel文件类型下拉中手动将Excel电子表格保存为“严格打开XML”文件。对于OOXML标准的严格文件格式和过渡文件格式变体,文件格式都是相同的.xlsx。
如何通过自动化工作流(例如C# )以编程方式完成相同的工作?其目的是将过渡Excel文件批量转换为严格的Excel文件。
我发现这些代码片段是Office的一部分:
我是否可以使用它们或其他方法进行从过渡到严格的批量转换?
更新:我正在与本期中Open的开发人员对话。
发布于 2022-08-05 11:34:21
我在深入研究后发现,唯一可能的方法是使用Excel.Interop并让您的Excel安装在后台处理转换。这不是一个很好的解决方案,因为它依赖于Excel,但它是一种编程方法。
您可以在这里找到Excel.Interop包:https://www.nuget.org/packages/Microsoft.Office.Interop.Excel
我遇到了一个问题,包找不到我的Excel安装,所以我不得不在您的计算机上重新引用Excel。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或其他C#框架的编程方法,请仍然发布您的答案。
https://stackoverflow.com/questions/71940270
复制相似问题