2011-04-15 57 views
0

我们目前正在研究一直在C#中使用COM Interop的应用程序将数据导入Excel工作簿。这些数据相当复杂且冗长,因此我们一直在使用Excel中的从XML导入功能。由于在服务器上运行Excel的问题,现在我们正在考虑转移到第三方解决方案来创建工作簿,例如SpreadsheetGear或Aspose。是否有任何允许将XML数据导入Excel的第三方工具?

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

- 编辑 - 的数据是从我们正在付诸实施的C#类,然后序列化为XML的DB2数据库的到来。然后我们将XML导入大约30个表格和其他单元格。然后,我们将表格复制并粘贴到输出表格,并重新使用原件导入更多。

- 编辑 - 输出是一张表中有多个表和字段的表单。 XML映射帮助的一部分是跟踪单元的位置,而不必将单元坐标大量硬编码到代码中。

+0

联系公司的这些产品,并要求? – 2011-04-15 15:42:36

+0

我刚刚联系过他们,但都没有支持此功能的产品。 – xdhmoore 2011-04-15 18:28:10

回答

1

虽然我还没有找到一个第三方工具,允许这一功能,拥有的Aspose.Cells“智能标记”功能,让您可以指定特定的细胞类似于XML映射的方式。我相信这可能是我一直在寻找的解决方案。

1

你可以看看SSIS。这可以让您将XML设置为数据源,并将电子表格作为目标。 (或相反亦然)。

+0

这可能是我们正在尝试做的事情的矫枉过正。我们首先从DB2数据库获取数据。 – xdhmoore 2011-04-15 15:45:47

1

EPPlus是一个不错的库,但我不是你河畔可以直接导入XML,但你可以导入CSV文件直接,也有例如样本英寸

它仍然相当容易实现。

+0

谢谢,我以前没见过EPPlus。看起来他们目前正在为下一个版本的XML导入工作。不幸的是,数据量相当庞大和复杂,所以XML映射会去,如果它是可用的最简单的方法。 – xdhmoore 2011-04-15 16:52:29

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); 

      } 
相关问题