C#を使ってExcelファイルを操作したいと考えたことはありませんか?
業務の自動化やレポートの出力など、Excelとの連携は非常に便利です。
本記事では、C#からExcelファイルを読み書きする基本的な方法を、初心者にもわかりやすく解説します。
Microsoft.Office.Interop.ExcelやOpenXML、EPPlusといった代表的なライブラリの使い方も紹介するので、ニーズに合わせた選択が可能です。
目次
C#でExcel操作を行う方法とは?
C#からExcelを操作するには、主に以下の3つの方法があります。
- Microsoft.Office.Interop.Excel(Excel Interop)
- Open XML SDK(Officeファイルの構造操作)
- 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操作を効率化していきましょう。