gpt4 book ai didi

c# - 将 .csv 转换为数据表时的额外引号

转载 作者:太空宇宙 更新时间:2023-11-03 16:16:04 26 4
gpt4 key购买 nike

我需要用两个 excel 文件填充两个数据表。这些文件可以是逗号分隔值文件 (.csv),也可以是 Excel 文档 (.xlsx) 文件。我使用函数将我的 .csv 转换为数据表:


public DataTable GetDataTableFromCsv(string path)
{
DataTable dataTable = new DataTable();
String[] values;

values = File.ReadAllLines(path);

string[] csvRows = System.IO.File.ReadAllLines(path);
string[] headers = csvRows[0].Split(',');

// Adding columns name
foreach (var item in headers)
dataTable.Columns.Add(new DataColumn(item));

string[] fields = null;

foreach (string csvRow in csvRows)
{
fields = csvRow.Split(',');
DataRow row = dataTable.NewRow();
row.ItemArray = fields;
dataTable.Rows.Add(row);
}
return dataTable;
}

当我尝试比较我的两个数据表时出现问题:

ieDiff = dt1.AsEnumerable().Except(dt2.AsEnumerable(), DataRowComparer.Default);

我通过 .xlsx 文件获得的第一个数据表包含正确的值,我通过 .csv 文件获得的第二个数据表包含正确的值 ,但有一些额外的引号。

例如:

dt1.Rows[10](来自 .csv 的数据表)将包含:

  1. 项目 1
  2. 项目 2
  3. “。”
  4. “项目 4”

dt2.Rows[10](来自 .xlsx 的数据表)将包含:

  1. 项目 1
  2. 项目 2
  3. .
  4. 第 4 项

我知道我可以修剪所有这些,但肯定有更好的方法来执行此操作?

最佳答案

最简单的答案是您在问题中提到的一个,即修剪引号字符。

我的测试代码:

var test = new[] { "Item1", "Item2", "\".\"", "\"Item4\"" };
foreach (var s in test)
{
textBox1.AppendTextAddNewLine(s.Trim('"'));
}

结果输出:

Item1
Item2
.
Item4

关于c# - 将 .csv 转换为数据表时的额外引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15815292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com