用C#写作和阅读excel文件

我正在写一个程序,通过selenium web驱动程序从一个网站获取数据。 我正在努力为我们的项目创造足球装备。 我到目前为止,我完成了从网站上的date和时间,队名和得分 。 也仍然试图在txt文件上写,但是在txt文件上写的时候会变得杂乱

我如何完成excel文件的写作和阅读? 我想这样写

Date-Time First-Team Second-Team Score Statistics 28/07 19:00 AM AVB 2-1 Shot 13123 Pass 65465 ... 28/07 20:00 BM BVB 2-2 Shot 13123 Pass 65465 ... 28/07 20:00 CM CVB 2-3 Shot 13123 Pass 65465 ... 

这是我的代码的一部分:

 StreamWriter file = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\Test" + "\\" + pathName + "\\" + subFile + "\\" + pathName + ".txt", false); for (int k = 2; k > 1; k--) { //doing some stuff } 

写作部分:

 for (int x = 0; x <dT.Count; x++) { file.Write(dateTime[x] + " " + firstTeam[x] + " " + secondTeam[x] + " " + firstHalf[x] + " " + secondHalf[x] + " ") for (int i = 0; i < total_FS.Count(); i++) { int index = total_FS[i].Length; if (total_FS[i][index-1].ToString() != " " && total_FS[i] != "-") { file.Write(total_FS[i]); } else { SpaceC++; if (total_FS[i][index - 1].ToString() == " ") file.Write(total_FS[i]); } if (SpaceC == 9) { file.Write("\n"); SpaceC = 0; break; } } } 

有几个很酷的库可以用来轻松读取和写入excel文件。 您可以在项目中引用它们,并轻松创build/修改电子表格。

EPPlus非常开发友好,易于使用。

  • EPPlus – codeplex源
  • 简单的教程

NOPI

  • NOPI – codeplex源码

DocumentFormat.OpenXml它为电子表格对象提供了强types的类,似乎相当容易使用。

  • DocumentFormat.OpenXml网站

  • DocumentFormat.OpenXml教程

用于Microsoft Office的Open XML SDK 2.0提供强types化的类/易于使用。

  • Open XML SDK 2.0 – MSDN

ClosedXML – OpenXML的简单方法 ClosedXML使开发人员更容易创build(.xlsx,.xlsm等)文件。

  • ClosedXML – 在GitHub上托pipe的存储库

  • ClosedXML – codeplex源代码

SpreadsheetGear * Paid – 在ASP.NET中导入/导出Excel工作簿的库

  • SpreadsheetGear网站

制作一个可以用Excel打开的CSV文本文件,而不是创buildXLS文件。 字段用逗号分隔,每行代表一条logging。

 field11,field12 field21,field22 

如果一个字段包含内部逗号,则需要用双引号括起来。

 "field11(row1,column1)", field12 field21, field22 

如果一个字段包含双引号,则需要转义。 但是你可以使用CsvHelper来完成这个工作。 从Nuget抓来

PM>安装包CsvHelper

一个关于如何使用它的例子。

 using(var textWriter = new StreamWriter(@"C:\mypath\myfile.csv") { var writer = new CsvWriter(textWriter); writer.Configuration.Delimiter = ","; foreach (var item in list) { csv.WriteField("field11"); csv.WriteField("field12"); csv.NextRecord(); } } 

完整的文档可以在这里find。