13,009
回編集
412行目: | 412行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
== Excelの主要関数のサポート == | |||
以下の例では、SUM、AVERAGE、VLOOKUP、IF等の関数を直接挿入して使用している。<br> | |||
<br> | |||
関数の適用には<code>FormulaA1</code>プロパティを使用して、通常のExcelで使用する形式で数式を記述する。<br> | |||
関数の結果を取得するには、セルの<code>Value</code>プロパティを使用する。<br> | |||
<br> | |||
また、文字列を含む数式では、ダブルクォートをエスケープする必要がある。(例: \"高い\")<br> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>実際の使用では、これらの関数をより複雑な数式の一部として使用したり、大量のデータに対して適用したりすることができる。</u><br> | |||
<u>また、Closed XMLは多くのExcel関数をサポートしているが、一部の高度な関数や最新の関数はサポートされていない可能性がある。</u><br> | |||
<u>そのような場合は、代替の方法を検討する必要がある。</u><br> | |||
<br> | |||
<syntaxhighlight lang="c++"> | |||
using System; | |||
using ClosedXML.Excel; | |||
class Program | |||
{ | |||
static void Main(string[] args) | |||
{ | |||
using (var workbook = new XLWorkbook()) | |||
{ | |||
var worksheet = workbook.Worksheets.Add("関数サンプル"); | |||
try | |||
{ | |||
// サンプルデータの入力 | |||
worksheet.Cell("A1").Value = "商品"; | |||
worksheet.Cell("B1").Value = "価格"; | |||
worksheet.Cell("A2").Value = "りんご"; | |||
worksheet.Cell("B2").Value = 100; | |||
worksheet.Cell("A3").Value = "バナナ"; | |||
worksheet.Cell("B3").Value = 80; | |||
worksheet.Cell("A4").Value = "オレンジ"; | |||
worksheet.Cell("B4").Value = 120; | |||
// SUM関数 | |||
// A1形式の数式を設定して、B2からB4セルの値を合計する | |||
worksheet.Cell("B5").FormulaA1 = "=SUM(B2:B4)"; | |||
Console.WriteLine($"合計金額: {worksheet.Cell("B5").Value}"); | |||
// AVERAGE関数 | |||
// B2からB4セルの値の平均を計算する | |||
worksheet.Cell("B6").FormulaA1 = "=AVERAGE(B2:B4)"; | |||
Console.WriteLine($"平均価格: {worksheet.Cell("B6").Value}"); | |||
// 検索用データの入力 | |||
worksheet.Cell("D1").Value = "商品コード"; | |||
worksheet.Cell("E1").Value = "商品名"; | |||
worksheet.Cell("D2").Value = "A001"; | |||
worksheet.Cell("E2").Value = "りんご"; | |||
worksheet.Cell("D3").Value = "B001"; | |||
worksheet.Cell("E3").Value = "バナナ"; | |||
worksheet.Cell("D4").Value = "C001"; | |||
worksheet.Cell("E4").Value = "オレンジ"; | |||
// VLOOKUP関数 | |||
// A7セルの値をキーとして、D2:E4の範囲から対応する値を検索する | |||
// 2は返す列のインデックス、FALSEは完全一致を意味する | |||
worksheet.Cell("A7").Value = "B001"; // 検索キー | |||
worksheet.Cell("B7").FormulaA1 = "=VLOOKUP(A7,D2:E4,2,FALSE)"; | |||
Console.WriteLine($"商品コードB001の商品名: {worksheet.Cell("B7").Value}"); | |||
// IF関数 | |||
// B2セルの値が100より大きい場合は"高い"、そうでない場合は"安い"を返す | |||
worksheet.Cell("C2").FormulaA1 = "=IF(B2>100,\"高い\",\"安い\")"; | |||
worksheet.Cell("C3").FormulaA1 = "=IF(B3>100,\"高い\",\"安い\")"; | |||
worksheet.Cell("C4").FormulaA1 = "=IF(B4>100,\"高い\",\"安い\")"; | |||
Console.WriteLine($"りんごの評価: {worksheet.Cell("C2").Value}"); | |||
Console.WriteLine($"バナナの評価: {worksheet.Cell("C3").Value}"); | |||
Console.WriteLine($"オレンジの評価: {worksheet.Cell("C4").Value}"); | |||
// ファイルを保存 | |||
workbook.SaveAs("Excel関数サンプル.xlsx"); | |||
Console.WriteLine("ファイルを保存"); | |||
} | |||
catch (Exception ex) | |||
{ | |||
Console.WriteLine($"エラーが発生: {ex.Message}"); | |||
} | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
== コレクションやDataTableの使用 == | == コレクションやDataTableの使用 == |