将.XLS转换为制表符分隔.TXT

use*_*003 3 c# excel tsv

我可以使用C#以某种方式将Excel .XLS文件转换为txt-tsv(制表符分隔值)文件吗?

JSO*_*SON 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();
Run Code Online (Sandbox Code Playgroud)

没有循环,没有bs.只需复制,粘贴和更改文件名即可.我看到的唯一问题是有时myExcel.Quit()似乎无法正常工作,excel的实例保持打开我的背景.解决这个问题的方法是通过程序手动终止进程,但我会将其保存为不同的讨论.