C# データをExcel形式に加工して保存する

# Excelを編集する手順
C#を使用してデータをExcel形式に加工するには、Excelファイルを操作するためのライブラリを使用する方法があります。有名なライブラリの一つは、`EPPlus`です。以下に、`EPPlus`を使用してデータをExcelファイルに加工する基本的な手順を示します。

まず、プロジェクトに`EPPlus`を追加します。これには、NuGetパッケージマネージャーを使用するか、プロジェクトフォルダーに`EPPlus.dll`を手動で追加する方法があります。

```csharp
using OfficeOpenXml;

// Excelファイルを作成し、データを追加する例
void CreateExcelFile(string filePath)
{
    using (var package = new ExcelPackage())
    {
        var workbook = package.Workbook;
        var worksheet = workbook.Worksheets.Add("Sheet1");

        // データを追加
        worksheet.Cells["A1"].Value = "名前";
        worksheet.Cells["B1"].Value = "年齢";

        worksheet.Cells["A2"].Value = "John";
        worksheet.Cells["B2"].Value = 25;

        worksheet.Cells["A3"].Value = "Jane";
        worksheet.Cells["B3"].Value = 30;

        // Excelファイルを保存
        package.SaveAs(new FileInfo(filePath));
    }
}
```

上記の例では、`EPPlus`を使用してExcelファイルを作成し、ワークシートにデータを追加しています。`worksheet.Cells`を使用してセルに値を設定し、`package.SaveAs`を使用してExcelファイルを保存しています。

他にも、`EPPlus`にはデータの読み込みや編集、書式設定、グラフの作成など、さまざまな機能があります。詳細な使い方やドキュメントについては、`EPPlus`の公式サイトやGitHubリポジトリを参照してください。

注意点として、`EPPlus`は.NET Frameworkおよび.NET Coreに対応していますが、Unityなどの一部のプラットフォームでは使用できない場合があります。プロジェクトの要件に応じて、適切なライブラリを選択してください。

# EPPlus外部ライブラリでできること
EPPlusは、C#でExcelファイルを操作するための強力なライブラリです。以下にEPPlusで可能な主な機能をいくつか紹介します。

1. Excelファイルの作成と保存: EPPlusを使用して新しいExcelファイルを作成し、データや書式設定を追加して保存することができます。

2. ワークシートの作成と操作: EPPlusでは、ワークシートを作成し、セルに値を設定したり、セルのスタイルや書式設定を変更したりすることができます。また、行や列の追加、削除、移動なども行えます。

3. データの読み込みと書き込み: EPPlusを使用して、Excelファイルからデータを読み込むことができます。セルの値や書式、数式などを取得したり、データを変更したりすることも可能です。また、データのソートやフィルタリングもサポートされています。

4. 書式設定とスタイルの操作: EPPlusでは、セルや範囲の書式設定を変更したり、フォントや背景色などのスタイルを適用したりすることができます。さまざまな書式設定オプションがあり、セルの幅や高さの調整も行えます。

5. グラフの作成: EPPlusを使用して、Excelファイルにグラフを作成することができます。棒グラフ、折れ線グラフ、円グラフなど、さまざまな種類のグラフを作成できます。グラフのデータ範囲やスタイル、軸の設定などをカスタマイズすることも可能です。

これらはEPPlusの一部ですが、より詳細な機能については、EPPlusの公式サイトやドキュメントを参照してください。また、EPPlusはオープンソースであり、GitHub上でソースコードを閲覧したり、サンプルコードを確認したりすることもできます。
# EPPlusを使用して、セルの結合などを行う
EPPlusを使用してセルの結合や他の操作を行うためには、ExcelRangeクラスを使用します。以下に、セルの結合とその他の操作を行う例を示します。

```csharp
// Excel編集用ライブラリ => EPPlus
// EPPlusをインストールすることでOfficeOpenXmlが参照可能となります。
using OfficeOpenXml;

namespace practice
{
    public class ExcelController
    {
        public void CreateExcelFile(string filePath)
        {
            var outFile = new FileInfo(filePath);
            using (var package = new ExcelPackage(outFile))
            {
                var workbook = package.Workbook;
                var worksheet = workbook.Worksheets["Sheet1"];

                // セルの結合
                worksheet.Cells["A1:B1"].Merge = true;
                worksheet.Cells["A1"].Value = "結合したセルです";
                worksheet.Cells["A2"].Value = "A2の値";

                // セルの値の取得と設定
                worksheet.Cells["B5"].Value = worksheet.Cells["A2"].Value;

                // セルのスタイル変更
                var cell = worksheet.Cells["A1"];
                cell.Style.Font.Bold = true;
                cell.Style.Font.Size = 12;
                // テキスト位置
                cell.Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Center;
                cell.Style.VerticalAlignment = OfficeOpenXml.Style.ExcelVerticalAlignment.Center;
                // スタイルを設定するための
                cell.Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid;
                cell.Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.Yellow);

                // 列の幅調整
                worksheet.Column(1).Width = 20;
                worksheet.Column(2).AutoFit();

                // 高さ指定
                worksheet.Row(1).Height = 50;


                // ファイルパスが既に存在する場合
                if (outFile.Exists)
                {
                    // Excelファイルを上書き保存
                    package.Save();
                }
            }
        }
    }
}


```
上記の例では、worksheet.Cells["A1:B1"].Merge = trueを使用してセルを結合しています。結合するセルの範囲を指定し、Mergeプロパティにtrueを設定することで結合します。

また、セルの値を取得するにはworksheet.Cells["A2"].Valueを使用し、セルに値を設定するにはworksheet.Cells["B2"].Valueに値を代入します。

セルのスタイルを変更するには、Styleプロパティを使用します。フォントのスタイルやサイズの変更、セルの水平方向および垂直方向の配置の変更などが可能です。

列の幅調整にはworksheet.Column(columnIndex).Widthを使用します。columnIndexは調整したい列のインデックスです。列の幅を自動調整するには、AutoFit()メソッドを使用します。

最後に、package.Save()を使用してExcelファイルを保存します。

以下では、PDFの編集についても解説しています。

https://qiita.com/inakuuun/items/c4c31c0fc60525330520