2014-04-08 45 views
2

我想將xls或xlsx文件保存爲以csv擴展名分隔的管道。以下代碼我使用,XlFileFormat只能將它保存爲一個csv逗號分隔,如您在Microsoft info page上所見。保存Excel到CSV管道分隔(XlFileFormat枚舉)

using Microsoft.Office.Interop.Excel; 
var excel = new Application(); 
var wbk = excel.Workbooks.Open(sourceFileLocation, 0, true, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); 
wbk.SaveAs(targetFileLocation, XlFileFormat.xlCSVMac, AccessMode: XlSaveAsAccessMode.xlExclusive); 

我可以用逗號分隔保存它,並再次打開文件並更改管道中的所有逗號,但這是一種難看的方法。是否有另一個簡單的方法將文檔保存爲管道分隔CSV?

回答

2

我建議你把 Convert Excel Range to ADO.NET DataSet or DataTable, etc

Convert DataTable to CSV stream

將數據讀入數據ADO.Net表,它與你所需要的靈活性保存爲CSV格式。

+0

DataSets和DataTables不是一種老技術嗎?我仍然聽到我的老師告訴我不要再使用這些東西了。但是,我也不知道另一種方式... – Freddy

+1

我會建議你接受這樣的說法而不質疑他們。請參閱http://stackoverflow.com/questions/2698151/entity-framework-vs-linq-to-sql-vs-ado-net-with-stored-procedures – Tarik

+0

我的意思是,我會建議你**不**接受這樣的要求而不質疑他們:-) – Tarik