简单的问题。有没有人知道将SpreadsheetML(Excel 2003 XML)转换为用于Excel 2007(xlsx)文件的Open Document XML的简单方法?
我有一个库,遗憾的是它没有读取XML格式,所以我需要尝试找到一种方法来读取数据,这不涉及另一个库。
任何建议表示赞赏。
答案 0 :(得分:2)
如果你有大笔资金Aspose.Cells可以读/写这两种格式,并且应该提供非常简单的转换,而不是自动化。
http://www.aspose.com/categories/.net-components/aspose.cells-for-.net/default.aspx
Aspose.Cells for .NET
Aspose.Cells for .NET是一个屡获殊荣的Spreadsheet组件,它允许.NET开发人员将Excel电子表格的读取,编写和操作功能嵌入到他们自己的应用程序中,而无需依赖Microsoft Excel。
Aspose.Cells for .NET是一个成熟,可扩展且功能丰富的组件,它提供的功能远远超出了其他供应商的简单数据导出功能。使用Aspose.Cells for .NET,开发人员可以导出数据,将电子表格格式化为最精细的级别,导入图像,导入图表,创建图表,应用和计算复杂公式,流式传输Excel数据,以各种格式保存等等 - 所有这一切都没有需要使用Microsoft Excel或Microsoft Office Automation。
每个开发人员的企业(内部)开发定价为899美元,并且从那里开始非常陡峭。
答案 1 :(得分:1)
一种简单的方法是使用Excel的COM库(Excel 2007),但我认为这不是您正在寻找的答案。
你的图书馆有什么能力?您可以使用Open XML SDK 2.0根据库的输出编写电子表格文档。
最好的问候
答案 2 :(得分:1)
从SpreadsheetML到Office Open XML,文件格式确实发生了很大变化。
而且,由于现在电子表格文件被分成多个XML文件(然后都是压缩的),因此没有一个简单的XLST解决方案的真正希望。
不幸的是,最直接的做法是使用宏自动化Excel以打开每个SpreadsheetML文件并对新格式执行“另存为”。这可以在Office 2003中使用Office 2007文件格式插件完成。也许这可以降级为批处理过程,因此服务器不直接参与?
如果电子表格中的数据非常简单且遵循一致的格式,您可以编写自己的解析器直接从SpreadsheetML文件导入。
答案 3 :(得分:1)
尝试使用JODConverter。 JODConverter允许使用OpenOffice.org或Libreoffice引擎转换SpreadsheetML。
答案 4 :(得分:0)
我知道,这个答案适合勇敢的开发者;)
问候。
答案 5 :(得分:0)
检查此代码static void XlsToXlsx
static void XlsToXlsx (string sourceFile, string destinationFile)
{
Type officeType = Type.GetTypeFromProgID("Excel.Application");
Excel.Application app = new Excel.Application();
app.DisplayAlerts = false;
// Open Excel Workbook for conversion.
Excel.Workbook excelWorkbook = app.Workbooks.Open(sourceFile);
// Save file as CSV file.
//excelWorkbook.SaveAs(destinationFile, Excel.XlFileFormat.xlCSV);
excelWorkbook.SaveAs(destinationFile, Excel.XlFileFormat.xlOpenXMLWorkbook);
// Close the Workbook.
excelWorkbook.Close();
// Quit Excel Application.
app.Quit();
}