首页 > 解决方案 > 从 CSV 读取值数字格式

问题描述

我希望实现的过程是我从 CSV 文件中读取并自动系统创建一个不同格式的新 CSV 文件。

我能够读取和格式化 CSV 文件,但是在处理数字格式时遇到问题,因为值的格式为数千(1,000)。例如,当我从 CSV 读取数据并用“,”分割每一行时,我的值会发生变化。

Ex Line 1:测试名称,测试描述,测试货币,12,500

var line1 = line.split(',');

由于 , 分隔符,这会拆分值 12 和 500。请问我怎样才能得到整个数量?

  using (var reader = new StreamReader(openFileDialog1.FileName))
            {
                while (!reader.EndOfStream)
                {
                    var line = reader.ReadLine();
                    var values = line.Split(',');
                }
            }

标签: c#csvsplitstreamreader

解决方案


你不能。当 CSV 文件包含数字(或任何带有 , 的文本)时,它需要引用字段。简单的代码(即不是人工智能)不可能像人眼那样区分。

Ex Line 1:测试名称,测试描述,测试货币,12,500

应该:

例如第 1 行:“测试名称”、“测试描述”、“测试货币”、“12,500”

常见的 CSV 解析器/库将知道如何处理这个(例如CsvHelper

如果您可以控制 CSV 文件的生成,那么您应该进行此更改。如果它来自第 3 方,那么看看你是否可以让他们做出改变。

如果字段后总是有空格而不是数字字段中,则在您的示例中可能存在边缘情况。然后,您的分隔符变为“,”,而不仅仅是“,”


推荐阅读