web-dev-qa-db-ja.com

C#でのExcelファイルの書き込みと読み取り

Selenium Webドライバーを介してWebサイトからデータを取得するプログラムを書いています。私は私たちのプロジェクトのためにサッカーの備品を作成しようとしています。私はこれまでのところ、ウェブサイトから日付と時刻、チーム名とスコアを取得することに成功しています。また、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;
           }
      }


}
9

Excelファイルを簡単に読み書きするために使用できるクールなライブラリはほとんどありません。プロジェクトでそれらを参照して、スプレッドシートを簡単に作成/変更できます。

EPPlus非常に開発者が使いやすく、使いやすいです。

[〜#〜] nopi [〜#〜]

DocumentFormat.OpenXmlこれは、スプレッドシートオブジェクトの強く型付けされたクラスを提供し、操作がかなり簡単なようです。

Microsoft Office用のOpen XML SDK 2.0厳密に型指定されたクラスを提供し、操作が簡単です。

ClosedXML-OpenXMLへの簡単な方法ClosedXMLは、開発者が(.xlsx、.xlsmなど)ファイルを簡単に作成できるようにします。

SpreadsheetGear*有料-ASP.NETでExcelワークブックをインポート/エクスポートするためのライブラリ

5
drZiqq

XLSファイルを作成する代わりに、Excelで開くことができるCSVテキストファイルを作成します。フィールドはカンマで区切られ、各行はレコードを表します。

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();
    }
}

完全なドキュメントは here にあります。

4
derloopkat