C# 用C语言编写和读取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

我正在编写一个程序,通过SeleniumWeb驱动程序从网站获取数据。我正在努力为我们的项目创造足球比赛。 到目前为止,我已经完成了从网站上获取日期和时间、球队名称和得分的工作。还在尝试写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;
           }
      }


}

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