【发布时间】:2020-03-22 00:52:31
【问题描述】:
我有以下 CSV 文件:
StudentId,FirstName,LastName,DateOfBirth,ImageData
200439932,Bruno,Simoes,07/05/1976,<image converted to Base64 output>
我需要在标题末尾添加一个名为“Image”的新标题,并在新列上重复转换为 base 64 的图像。我已经能够将图像作为 base64 转换为变量,并在下面的两行 colde 中读取:
var base64String = Convert.ToBase64String(File.ReadAllBytes(Constants.Locations.localImage));
string csvDataDump = File.ReadAllText(Constants.Locations.localInfo);
如何将标题和数据添加到 csv 文件?
【问题讨论】:
-
使用
File.ReadAllLines()而不是ReadAllText(),将“,columnName”附加到数组的第一项(即第一行),遍历剩余的数组元素并附加“,base64String” ,然后使用File.WriteAllLines()将数据写回磁盘。 -
谢谢,我可以把它改成这样的数组:``` String [] csvDataDump = File.ReadAllLines(Constants.Locations.localInfo); ``` 现在试图弄清楚如何循环和添加新列。
-
有 CSV 文件阅读器。他们可能会有所帮助,您的用例非常简单,@ahmedabdelhameed 的建议就是您所需要的。阅读如何循环数组。您可能想要使用
for而不是foreach。添加尾随字段后,将每个修改的行添加到List<string>,然后将修改后的行写入新文件。 -
我现在只需要添加一个逗号分隔第一个和第二个 base 64 图像:``` var base64String = Convert.ToBase64String(File.ReadAllBytes(Constants.Locations.localImage));列表 csvDataDump = File.ReadAllLines(Constants.Locations.localInfo).ToList(); csvDataDump[0] += ",图像"; csvDataDump[1] += base64String; File.WriteAllLines(Constants.Locations.localInfo, csvDataDump); ``` 它正在使用此代码。