使用CsvWriter导出csv文件并合并C#中的行

时间:2018-09-05 05:01:09

标签: c# .net excel export csv-write-stream

从c#导出的默认csv,例如: 房间名称|设备名称|设备编号

房间1-电视-E01

房间1-微波炉-E02

房间2-电视-E01

现在如何导出图片的csv http://prntscr.com/kqqehf

如何使用csvWriter C#做到这一点?请帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

我正在使用在代码项目中找到的类,它对我很有用。我有点新编程,但是运行得很好! 在下面的链接中,是我使用过的代码,只需创建一个类并将其复制到其中,然后将其包含在您的主表单代码中即可开始使用。 您可以在其中找到用法示例。

https://www.codeproject.com/Articles/415732/Reading-and-Writing-CSV-Files-in-Csharp

这不是我的代码,可以在提供的链接中找到它:) 希望对您有帮助! 如有任何疑问,请随时与我联系。我很乐意为您提供帮助,知道我正在使用该类从csv文件导出和导入数据的项目中。

编辑: 这是输出示例 并可以使用Excel打开,只需在Visual Studio中使用C#的文件IO将其以csv扩展名保存即可 另外,也可以将文件另存为csv,也可以从代码或保存文件对话框属性中保存。

saveFileDialog1.FileName = "CSVDATA" + DateTime.Now.ToString("yyMMdd");
saveFileDialog1.ShowDialog();
string PathName = Path.GetFullPath(saveFileDialog1.FileName);
string FileName1 = Path.GetFileName(PathName);
using (CsvFileWriter Writer = new CsvFileWriter(FileName1))
{
            CsvRow Header = new CsvRow();
            Header.Add(string.Format("{0}", "#2:30:UPD!"));
            Writer.WriteRow(Header);
            CsvRow NewRow = new CsvRow();
            for (int j = 0; j < Array.GetLength(0); j++)
            {
                NewRow.Add(string.Format("{0}", ("" + Array[j]).PadLeft(5, '0')));
                if (j == 14 || j == 29)
                {
                    Writer.WriteRow(NewRow);
                    NewRow.Clear();
                }                  
            }
}

输出: (只是示例,我在SO D:中是新的格式化代码,每行15个值。)

#2:30:UPD! 
00001,65506,00010,00010,00001,00001,00001
00000,04000,03000,00600,03500,00900,00900,00150
00400,00050,00080,00001,00030,00100,00040 
00100,00000,00000,00000,00000,00300,00000,00000

希望我能为您提供帮助!我很乐意为您提供其他帮助,也为凌乱的代码感到抱歉,只是需要这段时间来工作...