C# 用C语言编写和读取excel文件#
我正在编写一个程序,通过SeleniumWeb驱动程序从网站获取数据。我正在努力为我们的项目创造足球比赛。 到目前为止,我已经完成了从网站上获取日期和时间、球队名称和得分的工作。还在尝试写txt文件,但在写txt文件时会有点混乱 如何在excel文件上完成书写和阅读? 我想这样写C# 用C语言编写和读取excel文件#,c#,.net,excel,selenium-webdriver,ms-office,C#,.net,Excel,Selenium Webdriver,Ms Office,我正在编写一个程序,通过SeleniumWeb驱动程序从网站获取数据。我正在努力为我们的项目创造足球比赛。 到目前为止,我已经完成了从网站上获取日期和时间、球队名称和得分的工作。还在尝试写txt文件,但在写txt文件时会有点混乱 如何在excel文件上完成书写和阅读? 我想这样写 Date-Time First-Team Second-Team Score Statistics 28/07 19:00 AM AVB 2-1
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;
}
}
}
for(int x=0;x很少有很酷的库可以用来轻松地读写excel文件。您可以在项目中引用它们并轻松地创建/修改电子表格
EPPlus
开发人员非常友好,易于使用
NOPI
DocumentFormat.OpenXml
它为电子表格对象提供了强类型的类,并且似乎很容易使用
为Microsoft Office打开XML SDK 2.0
提供强类型类/易于使用
ClosedXML-打开xml的简单方法
ClosedXML使开发人员更容易创建(.xlsx、.xlsm等)文件
电子表格设备
*付费-在ASP.NET中导入/导出Excel工作簿的库
不要创建XLS文件,而是创建一个可以用Excel打开的CSV文本文件。字段用逗号分隔,每行代表一条记录
field11,field12
field21,field22
如果字段包含内部逗号,则需要用双引号括起来
"field11(row1,column1)", field12
field21, field22
如果字段包含双引号,则需要对其进行转义。但您可以使用来执行此操作。请从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();
}
}
可以找到完整的文档。我会尽快查看并试用。非常感谢您的大力推荐EPPlus@Kevin是的,我也是!EPPlus很好而且很容易使用。非常感谢。我试过了。它很容易使用。MS COM对象已经被弃用多年了。你应该使用它来处理modernoffice文件格式。如果我有很多数据,这难道不难吗。例如,如果我有1000个团队名称,date time@Derloopkat在这种情况下,您可以先迭代行,然后对每行迭代列。否则,根据一些代码示例,您可以传递表示行集合的复杂对象,并将它们直接写入fil使用writer.WriteRecords(rows);
但是我还没有试过。好的,我会试一下。非常感谢@derlookat