可以使用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. 無法將製表符分隔的.txt文件轉換爲csv
- 2. 將xlsx轉換爲txt製表符分隔 - 批處理
- 3. 將製表符分隔的文本轉換爲數組
- 4. 將文件(csv,excel,製表符分隔)轉換爲XML
- 5. 將製表符/空格分隔行轉換爲嵌套數組
- 6. 將製表符分隔的文本文件轉換爲JSON
- 7. 需要腳本來將逗號分隔文件轉換爲製表符分隔
- 8. 使用逗號分隔符將nVarChar轉換爲十進制數
- 9. 製表符分隔文本文件轉換爲XML(Javascript或PHP)?
- 10. 轉換製表符分隔文件爲csv文件
- 11. 將CSV轉換爲XLS
- 12. 如何將列添加到txt製表符分隔文件
- 13. Java如何將xls數據轉換爲txt文件
- 14. 使用soffice命令行將xls轉換爲以分號分隔的csv
- 15. 如何使用rgb值將bmp轉換爲表格(格式爲txt,xls)?
- 16. 將逗號分隔的字符串轉換爲變量列表?
- 17. 將空分隔的PWideChar轉換爲字符串列表
- 18. 將逗號分隔的雙字符串轉換爲列表
- 19. 將數據集轉換爲文本文件製表符分隔文件
- 20. 將Excel文件批量轉換爲製表符分隔的文本文件
- 21. 將多個dta文件轉換爲Stata中的製表符分隔文件
- 22. 修改用於將XML轉換爲製表符分隔文本文件的XSLT
- 23. 如何將製表符分隔的文件轉換爲CSV格式?
- 24. scikit將輸出metrics metrics.classification_report轉換爲CSV /製表符分隔格式
- 25. SpreadSheetGear - 如何使用逗號將十進制和十進制分隔符轉換爲千位分隔符?
- 26. 使用JQuery將分隔字符串轉換爲分層JSON
- 27. 在PHP中將分號分隔的字符串轉換爲JSON
- 28. 將管道分隔的csv轉換爲使用批處理腳本分隔的製表符
- 29. 將連字符分隔字符串轉換爲camelCase?
- 30. 將字符串[]轉換爲逗號分隔的字符串。
還有其他的手段來讀取可能提供更好的性能,從Infragistics的,GebBox,或像NPOI開源產品商業庫的Excel文件 - 爲不同的閱讀選項的討論,請參見http://stackoverflow.com/questions/15828 /讀Excel的文件 - 從-C-尖銳 – 2012-08-15 11:07:16