【发布时间】:2019-10-29 04:43:11
【问题描述】:
如何拆分从 URL 下载的 csv 文件?我正在尝试保留拆分的标题。
举个例子
A,B,C,D,E
1,2,3,4,5
12,11,8,7,6
23,23,34,1,0
23,23,32,1,0
转换成
A,B,C,D,E
1,2,3,4,5
12,11,8,7,6
A,B,C,D,E
23,23,34,1,0
23,23,32,1,0
我在下面有这段代码可以检索 URL 文件:
MemoryStream file = GetStreamFromUrl(invoiceAPI);
private static MemoryStream GetStreamFromUrl(string url)
{
MemoryStream stream = new MemoryStream();
WebClient wc = new WebClient();
using (MemoryStream streamDownload = new MemoryStream(wc.DownloadData(url)))
{
stream = streamDownload;
}
return stream;
}
我如何能够拆分 csv 文件并保留标题以及文件具有动态长度我是否能够将其拆分为仅 10 行,例如因为我将上传它以用于另一组。你能告诉我怎么做并解释一下吗?
【问题讨论】:
-
提示;在 NuGet 上使用 CsvHelper:nuget.org/packages/CsvHelper
-
提示:不要尝试使用
String.Substring、String.IndexOf或String.Split处理或解析 CSV 文件,因为 CSV 值可以包含转义字符,如引号和逗号,并且 CSV 字符串也可以跨越多个行 - 最好使用可靠且经过验证且声誉良好的库,例如CsvHelper。 -
无关:
MemoryStream stream = new MemoryStream();为什么要创建一个从未使用过的新流?它将在 using 块内设置为另一个。顺便说一句,这将在退出 using 块时处理。我怀疑这是否会奏效。
标签: c# csv split memorystream