Excel スプレッドシートは、データを表形式で整理、分析、表示するために広く使用されているファイル形式です。プログラムで Excel ファイルと対話する能力は非常に価値があり、ソフトウェアアプリケーションに Excel の機能を自動化および統合することができます。この機能は、大量のデータを扱う場合や複雑な計算を行う場合、またはデータを動的に生成または更新する必要がある場合に特に有用です。この記事では、Spire.XLS for .NET を使用して、C# で Excel ドキュメントを作成、読み取り、更新する方法を紹介します。
Spire.XLS for .NET をインストールします
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
C# で Excel ファイルを作成する方法
Spire.XLS for .NET は、Excel ドキュメントの作成と編集に使用できるさまざまなクラスとインターフェースを提供します。以下は、この記事に関係する重要なクラス、プロパティ、メソッドのリストです。
メンバー | 説明 |
Workbook クラス | Excel ワークブックモデルを表します。 |
Workbook.Worksheets.Add() メソッド | ワークブックにワークシートを追加します。 |
Workbook.SaveToFile() メソッド | ワークブックを Excel ドキュメントに保存します。 |
Worksheet クラス | ワークブックのワークシートを表します。 |
Worksheet.Range プロパティ | ワークシートから特定のセルまたはセル範囲を取得します。 |
Worksheet.Range.Value プロパティ | セルの値を取得または設定します。 |
Worksheet.Rows プロパティ | ワークシートの行のコレクションを取得します。 |
Worksheet.InsertDataTable() メソッド | データテーブルからデータをワークシートにインポートします。 |
CellRange クラス | ワークシートのセルまたはセル範囲を表します。 |
以下は、Spire.XLS for .NET を使用して Excel ドキュメントをゼロから作成する手順です。
- Workbook クラスのオブジェクトを作成します。
- Workbook.Worksheets.Add() メソッドを使用してワークシートを追加します。
- Worksheet.Range.Value プロパティを使って特定のセルにデータを書き込みます。
- Worksheet.InsertDataTable() メソッドを使用して、DataTable からワークシートにデータをインポートします。
- Workbook.SaveToFile() メソッドを使用して、ワークブックを Excel ドキュメントに保存します。
- C#
using Spire.Xls;
using System.Data;
namespace CreateExcelSpreadsheet
{
class Program
{
static void Main(string[] args)
{
//Workbookオブジェクトを作成する
Workbook wb = new Workbook();
//デフォルトのワークシートを削除する
wb.Worksheets.Clear();
//ワークシートを追加して「社員」と名付ける
Worksheet sheet = wb.Worksheets.Add("社員");
//A1からG1までのセルを結合する
sheet.Range["A1:G1"].Merge();
//A1にデータを書き込み、それにフォーマットを適用する
sheet.Range["A1"].Value = "環宇自動車会社の従業員の基本情報";
sheet.Range["A1"].HorizontalAlignment = HorizontalAlignType.Center;
sheet.Range["A1"].VerticalAlignment = VerticalAlignType.Center;
sheet.Range["A1"].Style.Font.FontName = "Yu Gothic UI";
sheet.Range["A1"].Style.Font.IsBold = true;
sheet.Range["A1"].Style.Font.Size = 13F;
//最初の行の行の高さを設定する
sheet.Rows[0].RowHeight = 30F;
//DataTableを作成する
DataTable dt = new DataTable();
dt.Columns.Add("名前");
dt.Columns.Add("性別");
dt.Columns.Add("生年月日");
dt.Columns.Add("学歴");
dt.Columns.Add("連絡先");
dt.Columns.Add("役職");
dt.Columns.Add("ID");
dt.Rows.Add("アレン", "男性", "1990-02-10", "学士", "24756854", "整備士", "0021");
dt.Rows.Add("パトリック", "男性", "1985-06-08", "修士", "59863247", "整備士", "0022");
dt.Rows.Add("ジェナ", "女性", "1989-11-25", "学士", "79540352", "営業", "0023");
dt.Rows.Add("トミー", "男性", "1988-04-16", "修士", "52014060", "整備士", "0024");
dt.Rows.Add("クリスティーナ", "女性", "1998-01-21", "学士", "35401489", "人事", "0025");
//DataTableからワークシートにデータをインポートする
sheet.InsertDataTable(dt, true, 2, 1, true);
//フォントを設定する
sheet.AllocatedRange.Style.Font.FontName = "YU Gothic Medium";
sheet.AllocatedRange.Style.Font.Size = 12.0;
//範囲の行の高さを設定する
sheet.Range["A2:G7"].RowHeight = 20F;
//列幅を設定する
sheet.Range["A2:G7"].Columns[2].ColumnWidth = 15F;
sheet.Range["A2:G7"].Columns[3].ColumnWidth = 21F;
sheet.Range["A2:G7"].Columns[4].ColumnWidth = 15F;
//範囲の境界線スタイルを設定する
sheet.Range["A2:G7"].BorderAround(LineStyleType.Medium);
sheet.Range["A2:G7"].BorderInside(LineStyleType.Thin);
sheet.Range["A2:G2"].BorderAround(LineStyleType.Medium);
sheet.Range["A2:G7"].Borders.KnownColor = ExcelColors.Black;
//新しい.xlsxファイルとして保存する
wb.SaveToFile("新しいワークブック.xlsx", FileFormat.Version2016);
wb.Dispose();
}
}
}
C# で Excel ワークシートからデータを読み取る方法
Worksheet.Range.Value プロパティは、セルの数値またはテキスト値を文字列として返します。ワークシート全体またはセル範囲のデータを取得するには、その中のセルをループします。以下は、Spire.XLS for .NET を使用してワークシートのデータを取得する手順です。
- Workbook クラスのオブジェクトを作成します。
- Workbook.LoadFromFile() メソッドを使用して Excel ドキュメントをロードします。
- Workbook.Worksheets[index] プロパティで特定のワークシートを取得します。
- Worksheet.AllocatedRange プロパティを使用して、データを含むセル範囲を取得します。
- 行と列を反復して範囲内のセルを取得し、CellRange.Value プロパティを通して各セルの値を返す。
- C#
using Spire.Xls;
namespace ReadExcelData
{
class Program
{
static void Main(string[] args)
{
//Workbookオブジェクトを作成する
Workbook wb = new Workbook();
//既存のExcelファイルを読み込む
wb.LoadFromFile("新しいワークブック.xlsx");
//最初のワークシートを取得する
Worksheet sheet = wb.Worksheets[0];
//データが含まれているセル範囲を取得する
CellRange locatedRange = sheet.AllocatedRange;
//行を繰り返し処理する
for (int i = 0; i < locatedRange.Rows.Length; i++)
{
//列を繰り返し処理する
for (int j = 0; j < locatedRange.Rows[i].ColumnCount; j++)
{
//特定のセルのデータを取得する
Console.Write(locatedRange[i + 1, j + 1].Value + " ");
}
Console.WriteLine();
}
}
}
}
C# で Excel ファイルを更新する方法
あるセルの値を変更するには、Worksheet.Range.Value プロパティで値を割り当て直すだけです。以下はその詳細な手順です。
- Workbook クラスのオブジェクトを作成します。
- Workbook.LoadFromFile() メソッドを使用して Excel ドキュメントをロードします。
- Workbook.Worksheets[index] プロパティで特定のワークシートを取得します。
- Worksheet.Range.Value プロパティを使って特定のセルの値を変更します。
- Workbook.SaveToFile() メソッドを使用して、ワークブックを Excel ファイルに保存します。
- C#
using Spire.Xls;
namespace UpdateCellValue
{
class Program
{
static void Main(string[] args)
{
//Workbookオブジェクトを作成する
Workbook wb = new Workbook();
//既存のExcelファイルを読み込む
wb.LoadFromFile("新しいワークブック.xlsx");
//最初のワークシートを取得する
Worksheet sheet = wb.Worksheets[0];
//特定のセルの値を変更する
sheet.Range["A1"].Value = "更新された値";
//ファイルに保存する
wb.SaveToFile("更新されたExcelファイル.xlsx", ExcelVersion.Version2016);
wb.Dispose();
}
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。