C# 如何在每个数据集后使用换行符将多个CSV文件合并为一个
我编写了一个创建字符串列表的方法。字符串的值是会计数据。 当我点击一个按钮时,将创建一个新的.csv文件。 看起来是这样的: 如您所见,在行的末尾没有换行符回车换行符。 我想将所有这些.csv文件合并为一个,每个数据集对应一行。 我用这个简单的cmd copy命令手动尝试过,但是它们都被追加到第一行,而不是添加到下一行:C# 如何在每个数据集后使用换行符将多个CSV文件合并为一个,c#,csv,merge,csvhelper,C#,Csv,Merge,Csvhelper,我编写了一个创建字符串列表的方法。字符串的值是会计数据。 当我点击一个按钮时,将创建一个新的.csv文件。 看起来是这样的: 如您所见,在行的末尾没有换行符回车换行符。 我想将所有这些.csv文件合并为一个,每个数据集对应一行。 我用这个简单的cmd copy命令手动尝试过,但是它们都被追加到第一行,而不是添加到下一行: 我需要在代码中添加/更改什么以在每行末尾包含换行符 如何以最简单的方式在方法中包含cmd copy命令 private void BuchungssatzB
private void BuchungssatzBilden(object obj)
{
//Lieferschein-Buchungswerte in Liste speichern
List<string> bs = new List<string>();
bs.Add(SelItem.Umsatz.ToString());
bs.Add(SelItem.Gegenkonto);
bs.Add(SelItem.Beleg);
bs.Add(SelItem.Buchungsdatum);
bs.Add(SelItem.Konto);
bs.Add(SelItem.Kost1);
bs.Add(SelItem.Kost2);
bs.Add(SelItem.Text);
using (var stream = new MemoryStream())
using (var reader = new StreamReader(stream))
using (var sr = new StreamWriter(@"C:\" + SelItem.Beleg + SelItem.Text + SelItem.Hv + ".csv", true, Encoding.UTF8))
{
using (var csv = new CsvWriter(sr, System.Globalization.CultureInfo.CurrentCulture))
{
//csv.Configuration.Delimiter = ";";
//csv.Configuration.HasHeaderRecord = true;
foreach (var s in bs)
{
csv.WriteField(s);
}
csv.Flush();
stream.Position = 0;
reader.ReadToEnd();
}
}
MessageBox.Show("CSV erfolgreich erstellt!");
}
private void BuchungssatzBilden(对象对象对象)
{
//李斯特·斯佩切恩的布琼斯维特酒店
列表bs=新列表();
添加(SelItem.Umsatz.ToString());
bs.Add(SelItem.Gegenkonto);
bs.Add(SelItem.Beleg);
bs.增补(选择布琼斯达姆项目);
bs.增补(SelItem.Konto);
bs.Add(选择项目1);
bs.增补(选择项目2);
添加(SelItem.Text);
使用(var stream=new MemoryStream())
使用(变量读取器=新的流读取器(流))
使用(var sr=newstreamwriter(@“C:\”+SelItem.Beleg+SelItem.Text+SelItem.Hv+.csv),true,Encoding.UTF8))
{
使用(var csv=new CsvWriter(sr,System.Globalization.CultureInfo.CurrentCulture))
{
//csv.Configuration.Delimiter=“;”;
//csv.Configuration.HasHeaderRecord=true;
foreach(bs中的var s)
{
csv.WriteField(个);
}
csv.Flush();
流位置=0;
reader.ReadToEnd();
}
}
MessageBox.Show(“CSV-erfolgreich-erstellt!”);
}
sr.WriteLine()
完成所有写入操作后。必须在流之前。位置=0代码>无论如何,你应该用你的类类型创建一个列表,并生成csv,而不是逐行生成,我同意@Magnetron。您是否有理由不能使用SelItem
列表并将其传递给CsvWriter
<代码>列表记录代码>后接csv.WriteRecords(记录)代码>FWIW,大约比CsvHelper快四倍。