用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。