2014-04-08 26 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