2011-04-15 58 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); 

      } 
相關問題