Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在从excel转换后删除csv文件中数字中的多余逗号_C#_Excel_Csv - Fatal编程技术网

C# 如何在从excel转换后删除csv文件中数字中的多余逗号

C# 如何在从excel转换后删除csv文件中数字中的多余逗号,c#,excel,csv,C#,Excel,Csv,我有一个将excel文件转换为csv文件的下一个代码: Microsoft.Office.Interop.Excel.Application reportExcel = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbooks reportBooks = null; Microsoft.Office.Interop.Excel.Workbook reportBook = n

我有一个将excel文件转换为csv文件的下一个代码:

Microsoft.Office.Interop.Excel.Application reportExcel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbooks reportBooks = null;
Microsoft.Office.Interop.Excel.Workbook reportBook = null;
Microsoft.Office.Interop.Excel.Sheets reportSheets = null;
Microsoft.Office.Interop.Excel._Worksheet reportSheet = null;
try
{
    reportBooks = reportExcel.Workbooks;
    reportBook = reportBooks.Open(excelFilePath);
    reportSheets = reportBook.Sheets;
    reportSheet = reportSheets.get_Item(1);
    if (File.Exists(csvtempFile))
    {
        File.Delete(csvtempFile);
    }
    reportBook.SaveAs(csvtempFile, Microsoft.Office.Interop.Excel.XlFileFormat.xlCSVWindows, Type.Missing, Type.Missing, false, false);
    ...
}
catch (Exception ex)
{
    ...
}
finally
{
    ...
}
我在csv文件中获得下一个文本:

...
"Some strings","309,145","4,964,398",,"1,194,780",,
...
如您所见,数字包含一个额外的逗号。请告诉我如何删除额外的逗号以获取下一个值:

"Some strings","309,145","4964,398",,"1194,780",,
查看此帖子:

您可以检查列类型,在每个要更改的列上设置一个范围,然后在导出之前设置数字格式


我知道它不漂亮,但如果你找不到更漂亮的东西可能会有用。

你是说你想要
,“309145”,“4964398”,“1194780”,
来代替它?哪一个额外的逗号?那些表示千的,还是那些表示空列的?我写道:“正如你看到的,数字包含一个额外的逗号”,所以:那些表示千的。这就是你不应该实现自己的CSV解析器的原因。虽然这种格式看似简单,但它有很多角落案例和例外,就像你刚刚发现的那样。有很多库,如果你只搜索一点,它可以很好地处理这些情况。CSV文件还有另一个问题:没有元数据。除非对每个字段的含义有一个正式的规范,否则您可以知道字段中的数据类型。因此,我给您的建议是:不要制作您自己的解析器,而要对包含的数据使用一个转换器,该转换器可以处理它所使用的格式(例如,以逗号作为分隔符的数字)。