从csv文件中获取数值

时间:2018-05-18 12:22:35

标签: c# string csv streamreader

您好我的应用程序基本上读取的CSV文件总是具有相同的格式,我需要应用程序来创建具有不同格式的CSV文件。读取和写入CSV文件不是问题,但是我遇到的问题是获取金额值,因为它们在csv文件中用a格式化(例如:4,500)。说过这些在写入csv文件时会被拆分。

例如:从下面,我如何获得完整数字.i.e。 2241.84& 1072809.33

line =“\”02 MAY 18 \“,\”TTEWTWTE \“,\”GRHGWHWH \“,”5月18日“,”2,241.84 \“,\”\“,\”1,072,809.33 \“ “

这是我从CSV文件中读取的方式。

        openFileDialog1.ShowDialog();
        var reader = new StreamReader(File.OpenRead(openFileDialog1.FileName));
        List<string> searchList = new List<string>();
        while (!reader.EndOfStream)
        {
            var line = reader.ReadLine();
            searchList.Add(line);
        }

到目前为止,我已经尝试使用下面的内容来获取“2,241.84”这是正确的,但在写入csv文件时我只得到2

searchList[2].Split(',')[1].Replace("\"", "")

2 个答案:

答案 0 :(得分:1)

让我以另一种方式想象内容:

"
    \"02 MAY 18\",
    \"TTEWTWTE\",
    \"GRHGWHWH\",
    \"02 MAY 18\",
    \"2,241.84\",
    \"\",
    \"1,072,809.33\"
"

您的分隔符似乎是\",而不是,。将searchList[2].Split(',')[1].Replace("\"", "")更改为searchList[1].Split(new string[] { "\",\"" }, StringSplitOptions.None)

答案 1 :(得分:0)

在您的情况下,您可以使用此:

var result = searchList[2].Split(new string[] { "\",\"" }, StringSplitOptions.None)[4].Replace("\"", "");

使用","分隔符分隔字符串,而不是,

我不知道您为什么使用静态数字作为索引,但我会假设它是出于测试目的。