c# - 从 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(',');
}
}
解决方案
你不能。当 CSV 文件包含数字(或任何带有 , 的文本)时,它需要引用字段。简单的代码(即不是人工智能)不可能像人眼那样区分。
Ex Line 1:测试名称,测试描述,测试货币,12,500
应该:
例如第 1 行:“测试名称”、“测试描述”、“测试货币”、“12,500”
常见的 CSV 解析器/库将知道如何处理这个(例如CsvHelper)
如果您可以控制 CSV 文件的生成,那么您应该进行此更改。如果它来自第 3 方,那么看看你是否可以让他们做出改变。
如果字段后总是有空格而不是数字字段中,则在您的示例中可能存在边缘情况。然后,您的分隔符变为“,”,而不仅仅是“,”
推荐阅读
- javascript - 我应该以什么日期格式存储在 Firestore 中以创建每月的动态报告?
- javascript - 警报框无法显示所下订单的可变订单 ID
- html - 始终在页面上居中标题、输入和提交按钮
- javascript - Javascript 可以将整数视为数组吗?
- java - 使用java servlet时SQL错误无效列
- javascript - 如何在 javascript 中生成 3 个不同(唯一)的数字?
- node.js - 为相同的登录请求获取 3 个输出
- html - 随着半径的增加,如何实现边框变亮?
- google-admin-sdk - Google Drive 的 Google admin sdk 不返回最新结果
- css - CSS Grid - 删除底部多余的行