当使用“另存为”而不是将Excel电子表格保存为默认工作簿OOXML文件(OOXML标准的“过渡”变体)时,可以在Excel中将Excel电子表格手动保存为“Strict Open XML”文件类型。OOXML标准的Strict和Transitional文件格式变体的扩展名均为.xlsx。
我如何通过自动化工作流(例如C#)以编程方式完成同样的事情?目的是将Transitional Excel文件批量转换为Strict Excel文件。
我发现这些代码片段是Office XML SDK的一部分:
- https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.conformanceclass?view=openxml-2.8.1
- https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.workbook.conformance?view=openxml-2.8.1#documentformat-openxml-spreadsheet-workbook-conformance
我可以使用它们或其他方法进行从Transitional到Strict的批量转换吗?
**更新:**我正在与this issue中Open XML SDK的开发人员进行对话。
1条答案
按热度按时间vjrehmav1#
经过广泛的研究,我发现唯一可行的方法是使用Excel.Interop,并让您的Excel安装在后台处理转换。这不是一个很好的解决方案,因为它依赖于Excel,但它是一种编程方法。
您可以在此处找到Excel.Interop包:https://www.nuget.org/packages/Microsoft.Office.Interop.Excel
我遇到了一个问题,软件包找不到我的Excel安装,因此我必须重新引用您计算机上的Excel Interop DLL.
Add reference > Browse > C:\Windows\assembly\GAC\Microsoft.Office.Interop.Excel
,并从此处的文件夹中选择DLL。我还从路径C:\Windows\assembly\GAC_MSIL\office
的子文件夹中添加了DLL转换代码
如果有人发现了使用OpenXMLSDK或其他C#框架的编程方法,请仍然张贴您的答案。