是否有任何第三方工具允许将XML数据导入Excel?

时间:2011-04-15 15:23:26

标签: c# excel spreadsheetgear aspose aspose-cells

我们目前正在开发一个在C#中使用COM Interop将数据导入Excel工作簿的应用程序。这些数据相当复杂和冗长,因此我们一直在使用Excel中的从XML导入功能。由于在服务器上运行Excel的问题,我们现在正在寻求为我们的工作簿创建转移到第三方解决方案,例如SpreadsheetGear或Aspose。

SpreadsheetGear和Aspose不支持XML导入。有没有人知道另一个第三方,服务器友好的工具呢?

- Edit-- 数据来自DB2数据库,我们将这些数据放入C#类,然后序列化为XML。然后,我们将XML导入大约30个表和其他单元格。然后我们将表复制并粘贴到输出表并重复使用原件导入更多。

- Edit-- 输出是一个表单上有多个表和字段的表单。 XML地图帮助的部分原因是跟踪单元格的位置,而不必将单元格坐标大量硬编码到代码中。

4 个答案:

答案 0 :(得分:1)

你可以看一下SSIS。这样就可以将XML设置为数据源,将电子表格设置为目标。 (反之亦然)。

答案 1 :(得分:1)

EPPlus是一个非常好的库,但我不是你可以直接导入XML,但你可以直接导入csv文件,样本中有例子。

实施起来仍然相当容易。

答案 2 :(得分:1)

虽然我没有找到允许此功能的第三方工具,但Aspose.Cells具有“智能标记”功能,允许您以类似于XML地图的方式指定特定单元格。我相信这可能是我一直在寻找的解决方案。

答案 3 :(得分:0)

将XML加载到数据集中,然后使用EPPlus从excel中取出数据表并从中创建excel文件:

DataSet ds = new DataSet();
            DataTable dt = ds.Tables[0];
            using (ExcelPackage pck = new ExcelPackage())
            {
                //Create the worksheet
                ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Calls");

                //Load the datatable into the sheet, starting from cell A1. Print the column names on row 1
                ws.Cells["A1"].LoadFromDataTable(dt, true);

                Byte[] bin = pck.GetAsByteArray();

                string file = filePath;
                File.WriteAllBytes(file, bin);

            }