C#でExcelをCSVに変換する方法


  1. Microsoft Office Interopを使用する方法: この方法では、Microsoft Office Interopを使用してExcelファイルを開き、データをCSV形式に変換します。ただし、この方法ではMicrosoft Officeがインストールされている必要があります。
using Excel = Microsoft.Office.Interop.Excel;
using System.IO;
public static void ExcelToCsv(string excelFilePath, string csvFilePath)
{
    Excel.Application excel = new Excel.Application();
    Excel.Workbook workbook = excel.Workbooks.Open(excelFilePath);
    Excel.Worksheet worksheet = workbook.Sheets[1];
    worksheet.SaveAs(csvFilePath, Excel.XlFileFormat.xlCSV);
    workbook.Close();
    excel.Quit();
}
  1. EPPlusライブラリを使用する方法: EPPlusは、Excelファイルを操作するためのオープンソースのライブラリです。このライブラリを使用すると、Officeのインストールは必要ありません。

EPPlusはNuGetパッケージとして提供されているため、まずVisual Studioのパッケージマネージャーコンソールで以下のコマンドを実行してEPPlusをインストールします。

Install-Package EPPlus

以下はEPPlusを使用してExcelをCSVに変換するコード例です。

using OfficeOpenXml;
using System.IO;
public static void ExcelToCsv(string excelFilePath, string csvFilePath)
{
    using (ExcelPackage package = new ExcelPackage(new FileInfo(excelFilePath)))
    {
        ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
        StringBuilder sb = new StringBuilder();
        int rowCount = worksheet.Dimension.Rows;
        int colCount = worksheet.Dimension.Columns;
        for (int row = 1; row <= rowCount; row++)
        {
            for (int col = 1; col <= colCount; col++)
            {
                sb.Append(worksheet.Cells[row, col].Value?.ToString() + ",");
            }
            sb.AppendLine();
        }
        File.WriteAllText(csvFilePath, sb.ToString());
    }
}

これらの方法を使用すると、C#でExcelファイルをCSVファイルに変換することができます。どちらの方法も実行する前に必要なパッケージをインストールする必要があります。また、ファイルパスやシート番号など、必要に応じてコードをカスタマイズしてください。