可以使用C#以某種方式將Excel .XLS文件轉換爲txt-tsv(製表符分隔值)文件嗎?將.XLS轉換爲製表符分隔.TXT
2
A
回答
3
您可以讀取XLS通過OLEDB(ADO.NET提供者)容易文件並創建一個StreamWriter
對象將數據寫入到文本/ TSV文件。
using (OleDbConnection cn = new OleDbConnection())
{
using (OleDbCommand cmd = new OleDbCommand())
{
cn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"C:\path\file.xls" + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";";
cmd.Connection = cn;
cmd.CommandText = "select * from [Sheet1$]";
using (OleDbDataAdapter adp = new OleDbDataAdapter(cmd))
{
DataTable dt = new DataTable();
adp.Fill(dt);
using (StreamWriter wr = new StreamWriter(@"C:\path\flie.tsv"))
{
foreach (DataRow row in dt.Rows)
{
wr.WriteLine(row[0] + "\t" + row[1]);
}
}
}
}
}
6
使用OleDb可能會很棘手,並且可能會導致問題取決於創建電子表格的Excel版本。例如,上面的例子可以使用.xls,但不能使用.xlsx。您必須將連接字符串從「Microsoft.Jet.OLEDB.4.0」更改爲「Microsoft.ACE.OLEDB.12.0」才能進行補償。但是,它對於所有的Excel表格都是不通用的。我會使用Microsoft.Office.Interop.Excel如下
Microsoft.Office.Interop.Excel.Application myExcel;
Microsoft.Office.Interop.Excel.Workbook myWorkbook;
Microsoft.Office.Interop.Excel.Worksheet worksheet;
myExcel = new Microsoft.Office.Interop.Excel.Application();
myExcel.Workbooks.Open(inputFileName.xls, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
myWorkbook = myExcel.ActiveWorkbook;
worksheet = (Microsoft.Office.Interop.Excel.Worksheet)myWorkbook.Worksheets[1];
myWorkbook.SaveAs(outputFileName.txt, Microsoft.Office.Interop.Excel.XlFileFormat.xlTextWindows, Missing.Value, Missing.Value, Missing.Value, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
myWorkbook.Close(false, Missing.Value, Missing.Value);
myExcel.Quit();
沒有循環,沒有bs。只需複製,粘貼和更改您的文件名。我看到的唯一問題是有時myExcel.Quit()似乎不能正常工作,並且Excel的實例保持打開狀態。解決這個問題的方法是通過程序手動殺死進程,但是我會將其保存爲不同的討論。
相關問題
- 1. Mass在Mac上將.xls和.xlsx轉換爲.txt(製表符分隔)
- 2. 將製表符分隔文件批量轉換爲xls
- 3. 將xlsx轉換爲txt製表符分隔 - 批處理
- 4. 無法將製表符分隔的.txt文件轉換爲csv
- 5. 將xls文件轉換爲製表符分隔文件的異常
- 6. 如何將不帶分隔符的.txt文件轉換爲Excel
- 7. C#VS2005轉換管道分隔.TXT到Excel工作簿。xls
- 8. 將製表符分隔的文本轉換爲數組
- 9. 將製表符/空格分隔行轉換爲嵌套數組
- 10. 將文件(csv,excel,製表符分隔)轉換爲XML
- 11. 將製表符分隔的文本文件轉換爲JSON
- 12. 如何將製表符分隔文件轉換爲CSV文件
- 13. 需要腳本來將逗號分隔文件轉換爲製表符分隔
- 14. 將ItemGroup轉換爲分隔字符串
- 15. 如何使用ssis轉換一組xls 2製表符分隔的文件?
- 16. 如何將無空格數據轉換爲R中的製表符分隔符?
- 17. 使用逗號分隔符將nVarChar轉換爲十進制數
- 18. 將Google表格轉換爲.xls
- 19. 如何在Python中將排序列表轉換爲製表符分隔值?
- 20. 將CSV轉換爲XLS
- 21. 將xml轉換爲xls
- 22. 將xls轉換爲圖像
- 23. 如何XLSX轉換爲製表符分隔的文件
- 24. 製表符分隔文本文件轉換爲XML(Javascript或PHP)?
- 25. 轉換製表符分隔文件爲csv文件
- 26. 如何將列添加到txt製表符分隔文件
- 27. 需要將Excel轉換爲製表符的方法使用Unicode編碼的分隔txt文件
- 28. 如何在Python中將.txt轉換爲.xls?
- 29. 將.txt文件轉換爲java中的.xls
- 30. Java如何將xls數據轉換爲txt文件
還有其他的手段來讀取可能提供更好的性能,從Infragistics的,GebBox,或像NPOI開源產品商業庫的Excel文件 - 爲不同的閱讀選項的討論,請參見http://stackoverflow.com/questions/15828 /讀Excel的文件 - 從-C-尖銳 – 2012-08-15 11:07:16