一个简单的问题。有没有人知道一种将SpreadsheetML(Excel 2003 XML)转换为用于Excel 2007(xlsx)文件的Open Document XML的简便方法?
我有一个不幸不能读取XML格式的库,所以我需要尝试找到一种读取数据的方法,而不涉及另一个库。
任何建议都将不胜感激。
一个简单的问题。有没有人知道一种将SpreadsheetML(Excel 2003 XML)转换为用于Excel 2007(xlsx)文件的Open Document XML的简便方法?
我有一个不幸不能读取XML格式的库,所以我需要尝试找到一种读取数据的方法,而不涉及另一个库。
任何建议都将不胜感激。
http://www.aspose.com/categories/.net-components/aspose.cells-for-.net/default.aspx
Aspose.Cells for .NET是一款屡获殊荣的电子表格组件,允许.NET开发人员将读取、写入和操作Excel电子表格的能力嵌入到他们自己的应用程序中,而无需依赖于Microsoft Excel。Aspose.Cells for .NET是一个成熟、可扩展和功能丰富的组件,提供了许多超出其他供应商简单数据导出能力的功能。使用Aspose.Cells for .NET,开发人员可以导出数据,将电子表格格式化到最细致的级别,导入图像、导入图表、创建图表、应用和计算复杂的公式、流式传输Excel数据、以各种格式保存等等,所有这些都不需要使用Microsoft Excel或Microsoft Office Automation。价格从每个企业(内部)开发者899美元起步,并呈陡增趋势。
一个简单的方法是使用Excel的COM库(Excel 2007),但我认为这不是你想要的答案。
你的库有什么能力?你可以使用Open XML SDK 2.0根据你的库的输出编写电子表格文档。
最好的祝福
文件格式从SpreadsheetML到Office Open XML确实发生了很大的变化。
而且,由于现在电子表格文件被分成多个XML文件(然后全部压缩),因此没有真正的简单XLST解决方案。
不幸的是,最直接的做法是使用宏自动化Excel,打开每个SpreadsheetML文件并执行“另存为”到新格式。这可以在Office 2003中使用Office 2007文件格式插件来完成。也许这可以委派给批处理过程,使服务器不直接参与?
如果电子表格中的数据是琐碎的并遵循一致的格式,您可以编写自己的解析器,直接从SpreadsheetML文件中导入。
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();
}
我知道,这个答案是给勇敢的开发者的;)
祝好。