Categories: Cシャープ

C#でExcelを操作する方法:初心者向けにわかりやすく解説

C#を使ってExcelファイルを操作したいと考えたことはありませんか?
業務の自動化やレポートの出力など、Excelとの連携は非常に便利です。
本記事では、C#からExcelファイルを読み書きする基本的な方法を、初心者にもわかりやすく解説します。
Microsoft.Office.Interop.ExcelやOpenXML、EPPlusといった代表的なライブラリの使い方も紹介するので、ニーズに合わせた選択が可能です。


C#でExcel操作を行う方法とは?

C#からExcelを操作するには、主に以下の3つの方法があります。

  1. Microsoft.Office.Interop.Excel(Excel Interop)
  2. Open XML SDK(Officeファイルの構造操作)
  3. EPPlus(軽量で人気の高いライブラリ)

この中で特に扱いやすいのはEPPlusですが、用途に応じて最適な選択を行うことが大切です。


Excel Interopを使った操作方法

ライブラリの追加方法

Visual Studioでプロジェクトを作成した後、以下の手順でExcel Interopを追加します。

  • 右クリック → 「NuGet パッケージの管理」→「Microsoft.Office.Interop.Excel」をインストール

基本的なコード例

using Excel = Microsoft.Office.Interop.Excel;

class Program
{
static void Main()
{
var excelApp = new Excel.Application();
var workbook = excelApp.Workbooks.Add();
var worksheet = (Excel.Worksheet)workbook.Sheets[1];

worksheet.Cells[1, 1] = "Hello, Excel!";
workbook.SaveAs("C:\\temp\\sample.xlsx");
workbook.Close();
excelApp.Quit();
}
}

メリットとデメリット

  • メリット:Excelの細かな操作が可能。マクロとの互換性もある。
  • デメリット:Officeのインストールが必要。サーバーでの使用には不向き。

Open XML SDKを使った操作方法

Open XMLはExcelファイルを構造的に操作する方法です。Officeがインストールされていない環境でも利用できます。

インストール方法

NuGetから以下のパッケージを追加します。

DocumentFormat.OpenXml

Excelファイルの作成例

using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;

public class ExcelCreator
{
public void CreateExcelFile(string filePath)
{
using (SpreadsheetDocument document = SpreadsheetDocument.Create(filePath, DocumentFormat.OpenXml.SpreadsheetDocumentType.Workbook))
{
WorkbookPart workbookPart = document.AddWorkbookPart();
workbookPart.Workbook = new Workbook();

WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());

Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());
Sheet sheet = new Sheet()
{
Id = workbookPart.GetIdOfPart(worksheetPart),
SheetId = 1,
Name = "Sheet1"
};
sheets.Append(sheet);
workbookPart.Workbook.Save();
}
}
}

ポイント

  • セルに文字を書き込むには、RowやCell要素を手動で追加する必要があり、やや複雑です。
  • ただしOffice非依存で軽量。

EPPlusを使った簡単なExcel操作

EPPlusは、Officeのインストール不要で、Excelファイルの読み書きができるライブラリです。最も簡単に使える方法として人気があります。

インストール方法

Install-Package EPPlus

Excelファイルの作成例

using OfficeOpenXml;
using System.IO;

class Program
{
static void Main()
{
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

using (var package = new ExcelPackage())
{
var worksheet = package.Workbook.Worksheets.Add("Sheet1");
worksheet.Cells[1, 1].Value = "こんにちは、Excel!";

var fileInfo = new FileInfo("C:\\temp\\epplus_sample.xlsx");
package.SaveAs(fileInfo);
}
}
}

メリットとデメリット

  • メリット:非常にシンプル、Office不要、処理が高速。
  • デメリット:無料版には一部制限あり(商用利用はライセンス要)。

Excelの読み込みとデータ処理

Excelファイルからデータを読み込むのも、EPPlusなら簡単です。

using (var package = new ExcelPackage(new FileInfo("C:\\temp\\epplus_sample.xlsx")))
{
var worksheet = package.Workbook.Worksheets["Sheet1"];
string value = worksheet.Cells[1, 1].Text;
Console.WriteLine(value);
}

このようにセルの値を取得して、業務システムに取り込むことが可能です。


どの方法を選ぶべきか?

用途推奨方法
Windowsクライアントアプリでの利用Interop
サーバー・クラウド上での処理EPPlus または OpenXML
ファイル構造を細かく制御したい場合Open XML SDK

まとめ:Excel操作はC#でも意外と簡単!

C#でのExcel操作には複数の方法があり、それぞれに特徴があります。
初めての方には、扱いやすくてコードが短いEPPlusの使用をおすすめします。
用途や環境に応じて、適切なライブラリを選び、Excel操作を効率化していきましょう。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。