12,964
回編集
112行目: | 112行目: | ||
== Excelファイルの作成 == | == Excelファイルの作成 == | ||
以下の例では、Excelファイルおよびシートを新規作成している。<br> | |||
<br> | |||
* Open XML形式のExcelファイルの作成と編集 | |||
*: new XLWorkbook()を使用して新しいワークブックを作成する。 | |||
*: workbook.Worksheets.Add("サンプルシート")でワークシートを追加する。 | |||
*: workbook.SaveAs("sample.xlsx")でファイルを保存する。 | |||
*: 既存のファイルを開く場合は、new XLWorkbook("サンプル.xlsx")を使用する。 | |||
<br> | <br> | ||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> | ||
using System; | |||
using ClosedXML.Excel; | |||
const string ExcelFilePath = @"sample.xlsx"; | const string ExcelFilePath = @"sample.xlsx"; | ||
122行目: | 130行目: | ||
{ | { | ||
// ワークシートの追加 | // ワークシートの追加 | ||
using (var worksheet = workbook.Worksheets.Add(" | using (var worksheet = workbook.Worksheets.Add("サンプルシート")) | ||
{ | { | ||
// | // 何らかの処理 | ||
// ワークブックを保存する | // ワークブックを保存する | ||
144行目: | 139行目: | ||
Console.WriteLine(@"Excelファイルを保存しました"); | Console.WriteLine(@"Excelファイルを保存しました"); | ||
// 保存したファイルを開いて編集 | |||
using (var workbook = new XLWorkbook("サンプル.xlsx")) | |||
{ | |||
var worksheet = workbook.Worksheet(1); | |||
// 何らかの処理 | |||
// 変更を保存 | |||
workbook.Save(); | |||
} | |||
} | |||
</syntaxhighlight> | |||
<br><br> | |||
== セルデータの読み書き == | |||
以下の例では、Open XML形式のExcelファイルにおいて、セルの値の設定、読み取り、数式の挿入、ファイルの保存と再編集等を行っている。<br> | |||
<br> | |||
* セルデータの読み書き | |||
** 書き込み | |||
**: worksheet.Cell("A1").Value = "文字列" のように、Cellメソッドを使用してセルを指定して、Valueプロパティに値を代入する。 | |||
** 読み取り | |||
**: var cellValue = worksheet.Cell("A2").Value のように、Valueプロパティを使用してセルの値を取得する。 | |||
<br> | |||
* 数値、文字列、日付等の各種データ型 | |||
** 文字列 | |||
**: worksheet.Cell("A1").Value = "文字列" | |||
** 数値 | |||
**: worksheet.Cell("A2").Value = 123 | |||
** 日付 | |||
**: worksheet.Cell("A3").Value = DateTime.Now | |||
<br> | |||
* 複雑な数式の挿入と評価 | |||
** 基本的な数式 | |||
**: worksheet.Cell("B1").FormulaA1 = "=SUM(A1:A3)" | |||
** 条件付き数式 | |||
**: worksheet.Cell("C1").FormulaA1 = "=IF(A2>100, \"高い\", \"低い\")" | |||
<br> | |||
また、大量のデータを扱う場合は、パフォーマンスを考慮したアプローチ (例: バッチ処理) を検討する必要がある。<br> | |||
<br> | |||
<syntaxhighlight lang="c#"> | |||
using System; | |||
using ClosedXML.Excel; | |||
class Program | |||
{ | |||
static void Main(string[] args) | |||
{ | |||
// 新しいExcelワークブックを作成 | |||
using (var workbook = new XLWorkbook()) | |||
{ | |||
var worksheet = workbook.Worksheets.Add("サンプルシート"); | |||
// セルデータの書き込み | |||
worksheet.Cell("A1").Value = "文字列"; | |||
worksheet.Cell("A2").Value = 123; // 数値 | |||
worksheet.Cell("A3").Value = DateTime.Now; // 日付 | |||
// 数式の挿入 | |||
worksheet.Cell("B1").FormulaA1 = "=SUM(A1:A3)"; | |||
// セルのスタイル設定 | |||
var cell = worksheet.Cell("A1"); | |||
cell.Style.Font.Bold = true; | |||
cell.Style.Fill.BackgroundColor = XLColor.LightBlue; | |||
// セルの値を読み取り | |||
var cellValue = worksheet.Cell("A2").Value; | |||
Console.WriteLine($"A2セルの値: {cellValue}"); | |||
// 複雑な数式の挿入 | |||
worksheet.Cell("C1").FormulaA1 = "=IF(A2>100, \"高い\", \"低い\")"; | |||
// セルに書式を設定 | |||
var sumCellStyle = worksheet.Cell("A3").Style; | |||
sumCellStyle.Fill.BackgroundColor = XLColor.Red; // 塗りつぶし | |||
sumCellStyle.NumberFormat.Format = "#,##0.00"; // 数値の書式 | |||
// 以下に示すように、メソッドチェーンでも記述することができる | |||
//worksheet.Cell("A3").SetFormulaA1("SUM(A1:A2)") | |||
// .Style.Fill.SetBackgroundColor(XLColor.Red) | |||
// .NumberFormat.SetFormat("#,##0.00"); | |||
// ファイルを保存 | |||
workbook.SaveAs("サンプル.xlsx"); | |||
} | |||
// 保存したファイルを開いて編集 | |||
using (var workbook = new XLWorkbook("サンプル.xlsx")) | |||
{ | |||
var worksheet = workbook.Worksheet(1); | |||
// 既存のデータを読み取り | |||
var a1Value = worksheet.Cell("A1").Value; | |||
Console.WriteLine($"A1セルの値: {a1Value}"); | |||
// 新しいデータを追加 | |||
worksheet.Cell("D1").Value = "新しいデータ"; | |||
// 変更を保存 | |||
workbook.Save(); | |||
} | |||
Console.WriteLine("処理が完了しました。"); | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |