unote 書けば書くほどに

0525 Excelcsv

【C#】もう悩まない!CSV読み込みの最も簡単な方法を徹底解説 | 侍エンジニアブログ

CSVファイルをExcelファイル(ABC.xlsx)に読み込むプログラムの修正版を以下に示します。このプログラムでは、CSVファイルを読み込み、Excelファイルに書き込みます。書き込むためには、`EPPlus`というライブラリを使用します。

まず、`EPPlus`ライブラリをプロジェクトに追加する必要があります。Visual Studioの場合は、[ツール] > [NuGetパッケージマネージャー] > [ソリューションのNuGetパッケージの管理] を選択し、`EPPlus`を検索してインストールします。

次に、修正版のプログラムを以下に示します。

```csharp
using System;
using OfficeOpenXml;
using System.IO;

class Program
{
static void Main()
{
string csvFilePath = "path/to/your/file.csv"; // 読み込むCSVファイルのパスを指定してください
string excelFilePath = "path/to/your/ABC.xlsx"; // 書き込むExcelファイルのパスを指定してください

try
{
using (ExcelPackage package = new ExcelPackage(new FileInfo(excelFilePath)))
{
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");

// CSVファイルを読み込む
using (StreamReader reader = new StreamReader(csvFilePath))
{
int row = 1;
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
string[] values = line.Split(',');

for (int column = 1; column <= values.Length; column++)
{
worksheet.Cells[row, column].Value = values[column - 1];
}

row++;
}
}

package.Save();
}

Console.WriteLine("Excelファイルに書き込みました。");
}
catch (Exception e)
{
Console.WriteLine("エラー: " + e.Message);
}
}
}
```

この修正版では、`EPPlus`ライブラリを使用して、Excelファイルに書き込んでいます。CSVファイルのパスを`csvFilePath`、Excelファイルのパスを`excelFilePath`に設定して、`Main`メソッド内の処理を実行してください。

プログラムが実行されると、CSVファイルのデータがExcelファイルの新しいシートに書き込まれます。もし指定したExcelファイルが既に存在する場合は、新しいシートが追加されます。

なお、このプログラムでは例外処理も含まれており、ファイルの読み込みや書き込みに関するエラーが発生した場合にエラーメッセージを表示します。

必要に応じて、実際の処理に合わせてカスタマイズしてください。