【发布时间】:2017-03-10 05:52:09
【问题描述】:
我正在编写将 CSV 文件重写到 excel 电子表格的程序。我需要二维数组将文本写入 excel,所以我使用 File.ReadAllLines 和 foreach line.Split 方法,它工作得很好。问题是,当我们想在 excel 单元格内换行时 - ReadAllLines 以相同的方式处理换行和回车,所以我们将在 excel 中使用不同的单元格换行。
问题是,有什么方法可以覆盖这个方法,我们可以区分LF和CR吗?例如,LF什么时候不创建新行,所以列表中的新元素,只需将其附加到带有某种excel标识符的前一个字符串。
这是我读取文件的方式:
public virtual List<List<string>> Read(string inFile)
{
var sheetData = new List<List<string>>();
if (!File.Exists(inFile))
{
FileDoesNotExist(inFile);
return sheetData;
}
var lines = File.ReadAllLines(inFile);
foreach (var line in lines)
{
var cells = line.Split(_delimiter).ToList();
sheetData.Add(cells);
}
return sheetData;
}
【问题讨论】:
-
请附上代码
-
解析 CSV 不仅仅是用逗号分割。确保您的文件格式正确(如果值可以包含 LF,则必须使用双引号)并使用 CSV 解析器,例如TextFieldParser.