C#用分号导出CSV文件

我想将Excel文件转换为csv,我写了这个C#代码:

Excel.Application excelApp = new Excel.ApplicationClass(); Excel.Workbooks workBooks = excelApp.Workbooks; excelApp.DisplayAlerts = false; Excel.Workbook workBook = workBooks.Open(sourceFile, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, ';', Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); workBook.SaveAs(csvFilePath, Excel.XlFileFormat.xlCSV, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); workBook.Close(false, sourceFile, null); excelApp.DisplayAlerts = true; Excel.Application app = excelApp.Application; app.Quit(); Marshal.ReleaseComObject(workBooks); Marshal.ReleaseComObject(workBook); Marshal.ReleaseComObject(excelApp); Marshal.ReleaseComObject(app); sourceFile = csvFilePath; 

但是csv文件用逗号分隔。 我在互联网上搜索过。 我尝试过Region Setting和其他东西,但没有一个能解决我的问题。

输出示例: Hesap,391,TL,,,

我想要这个输出: Hesap;391;TL;;;

我有同样的问题, – 我不得不将一个项目从Windows Server 2003迁移到Windows Server 2012,而这个

workBook.SaveAs(csvFilePath, Excel.XlFileFormat.xlCSV, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

和csv文件用逗号而不是分号分隔。 我找到了一个帮助我避免这个问题的解决方案

格式:

  oBook.SaveAs(newFileName, XlFileFormat.xlUnicodeText, missing, missing, false, false, XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing); 

在我以这种方式重写文件之后:

  string text = File.ReadAllText(newFileName); text = text.Replace("\t", ";").Replace("{tab}", "\t"); File.WriteAllText(newFileName, text, Encoding.UTF8); 

所以我用分号分隔csv文件。 但是剩下的另一个问题 – 带有日期和浮点值的文件有另一种格式, – 日期是10/5/2015 18:54而不是5.10.2015 18:54而浮点值是5.55而不是5,55。

我认为最后两个问题我将通过在我的oracle过程中转换vaules来决定,但主要问题是通过 – 我们需要相同的csv文件。

一些开发人员可能会认为逗号是正确的,而分号不是,或者这些删除器没有区别,但是如果你有一个大项目,那么服务器端的所有程序都以一种方式工作,很难设置和纠正所有这些。

我不明白一件事 – 如果我在excel文件中有一个逗号,我使用这个方法workbook.SaveAs,我们将如何进一步采取该字段的正确值? – 将有两个值而不是一个! 分号的情况是一样的,但我们从不在Excel文件中使用分号。