2012-11-14 178 views
0

我定期收到一個xls文件(是的,包含多張紙),並有大量的業務邏輯應用於此文件。我所做的不是想要的是必須使用第三方庫,然後使用庫專用命令(如sheet.cell(42,73))與業務邏輯混合在一起。當第三方庫到期或Excel更新時,所有事情都必須重新設計。將Excel xls文件轉換爲unix上的任何XML格式?

因此,我想有一個渺茫的轉換階段。 XML方言並不重要,「xmlx」可以,Open-Office,Open-Doc等。它只需要有明確的定義。如果稍後在這個轉換中有變化,我希望我能用一個小的xslt來處理。

在該XML中,我將使用我最喜歡的語言(python或perl)提供的xml工具編寫業務邏輯,甚至只是編寫xslt。

什麼是最可靠最薄來轉換xls -file到xml -file,在Linux機器上呢?

注:

  • 該文件包含多個工作表,如果這是不是我會問到CSV最簡單的轉換器的情況下。
  • 機器將是64位或32位,但不會有任何方式連接到Windows機器。
  • 我寧願不必在該服務器上安裝Office,即用於腳本Open或Libre-Office ...
  • 唉,我不能要求該文件以任何其他格式保存,如xlsx嘆息
+0

會不會是任何幫助,爲您導出.xls文件到.XPS (XML紙張規格(XPS))文件。這只是一個簡單的方法?只是一個想法? – Sylca

+0

不,我問文件的提供者,他們沒有辦法以任何不同的格式導出它。但是我記下了'xps'格式的提示,如果你有一個穩定的數據交換格式的經驗。 – towi

+0

比,這會有什麼幫助嗎? http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/b6e8a28c-6760-4e86-a1aa-e2ce9ec36380 將Excel文件讀入DataTable並使用DataTable.WriteXml()。 – Sylca

回答

0

這是檢索使用JETDB從Excel中的數據,我就發現網上的一個例子:

 string connstr ="Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\aaa.xls;Extended Properties=Excel 8.0"/> 
     OleDbConnection conn = new OleDbConnection(connstr); 
     string strSQL = "SELECT * FROM [Sheet$]"; 

     OleDbCommand cmd = new OleDbCommand(strSQL, conn); 
     DataSet ds = new DataSet(); 
     OleDbDataAdapter da = new OleDbDataAdapter(cmd); 
     da.Fill(ds); 
     GridView1.DataSource = ds; 
     GridView1.DataBind(); 
相關問題