首页 > 解决方案 > 从 csv 文件中获取数值

问题描述

嗨,我的应用程序基本上会读取一个始终具有相同格式的 CSV 文件,我需要该应用程序创建一个具有不同格式的 CSV 文件。读取和写入 CSV 文件不是问题,但是我遇到的问题是获取金额值,因为这些值在 csv 文件中使用 , 格式化(例如:4、500)。话虽如此,这些在写入 csv 文件时会被拆分。

例如:从下面,我怎样才能得到完整的数字。即 2241.84 和 1072809.33

line = "\"02 MAY 18\",\"TTEWTWTE\",\"GRHGWHWH\",\"02 MAY 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("\"", "")

标签: c#stringcsvstreamreader

解决方案


让我以另一种方式可视化内容:

"
    \"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)


推荐阅读