チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション

CSV(カンマ区切り値)ファイルは、アプリケーション間でデータをやり取りする際に、現在でも最も広く使用されている形式のひとつです。財務データ、ユーザー情報、分析レポートなどを扱う場合でも、C# で CSV ファイルを効率よく読み取ることは .NET 開発における一般的なタスクです。
CSV を読み込んだあと、データ加工や DB 保存まで行いたいケースも多いでしょう。
本ガイドでは、Spire.XLS for .NET を使用して C# で CSV ファイルを解析する方法を詳しく解説します。直接読み取りの方法と、CSV を DataTable に変換する方法の両方をカバーします。
Spire.XLS は主に Excel ファイル向けのライブラリですが、.NET 用の CSV リーダーとしても利用できます。CSV ファイルに対する優れたサポートを備えており、効率的かつシンプルに処理できます。
まずは、プロジェクトに Spire.XLS パッケージをインストールします。手順は以下の通りです:
または、パッケージマネージャーコンソールから次のコマンドを実行することも可能です:
PM> Install-Package Spire.XLS
これにより、Spire.XLS を利用するために必要な依存関係がプロジェクトに追加されます。
まずは基本から始めましょう。C#でCSVファイルを読み取る最もシンプルな方法を紹介します。以下のコードでは、CSV ファイルを読み込み、データを取得し、コンソールに表形式で出力します。
「sample.csv」は実際のファイルパスに置き換えてください。
using Spire.Xls;
namespace ReadCSV
{
class Program
{
static void Main(string[] args)
{
// Workbook インスタンスを作成
Workbook workbook = new Workbook();
// CSV ファイルを読み込む
workbook.LoadFromFile("sample.csv", ",");
// 最初のワークシートを取得
Worksheet sheet = workbook.Worksheets[0];
// 使用範囲を取得
CellRange range = sheet.AllocatedRange;
// 行と列をループ処理
for (int row = 1; row <= range.RowCount; row++)
{
for (int col = 1; col <= range.ColumnCount; col++)
{
// セルの値を取得
string cellValue = range[row, col].Value;
Console.Write(cellValue + "\t");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
Workbook クラス:CSV ファイルをメモリ上で管理する「コンテナ」として機能します。CSV は完全な Excel ファイルではありませんが、Spire.Xls は一貫性のために単一シートのブックとして扱います。
Workbook.LoadFromFile():CSV ファイルを読み込みます。
Worksheet.AllocatedRange:データが含まれているセル範囲のみを取得します。
CellRange[row, col].Value:指定したセルの値を取得します。
結果:CSV データがタブ区切り形式でコンソールに出力されます。

VB.NET でのサンプルが必要な場合は、C# コードを VB.NET コンバーターで変換してください。
C# で CSV データを扱う場合、DataTable は .NET における柔軟なインメモリデータ構造で、フィルタリング・並び替え・UI バインドなどのデータ操作を簡単に行えます。
以下は、Spire.XLS を使用して CSV データを DataTable に読み込む方法です:
using Spire.Xls;
using System.Data;
namespace ReadCSV
{
class Program
{
static void Main(string[] args)
{
// Workbook インスタンスを作成
Workbook workbook = new Workbook();
// CSV ファイルを読み込む
workbook.LoadFromFile("sample.csv", ",");
// 最初のワークシートを取得
Worksheet worksheet = workbook.Worksheets[0];
// ワークシートのデータを DataTable にエクスポート
DataTable dataTable = worksheet.ExportDataTable();
// 行数と列数を取得
Console.WriteLine("\n変換完了!DataTable の情報:");
Console.WriteLine($"列数: {dataTable.Columns.Count}");
Console.WriteLine($"行数: {dataTable.Rows.Count}");
Console.WriteLine();
// 列名を出力
for (int i = 0; i < dataTable.Columns.Count; i++)
{
Console.Write(dataTable.Columns[i].ColumnName + " | ");
}
Console.WriteLine();
Console.WriteLine("----------------------------------------------------------");
// 行データを出力
for (int i = 0; i < dataTable.Rows.Count; i++)
{
for (int j = 0; j < dataTable.Columns.Count; j++)
{
string value = dataTable.Rows[i][j].ToString();
Console.Write(value + "\t");
}
Console.WriteLine();
}
}
}
}
結果:列情報・ヘッダー・行データを含む構造化された出力が得られます。

データの分析・計算・フォーマットを行う場合は、CSV を Excel に変換する方法も有効です。
目的に応じて最適な方法を選びましょう:
| 方法 | 適した用途 | 使用例 |
|---|---|---|
| CSV の直接読み取り | 簡易確認 | CSV が正しく読み込まれているか確認 |
| DataTable への変換 | 高度なデータ処理 | フィルタ、並び替え、SQL Server への保存 |
Spire.XLS for .NET を使用すれば、C# での CSV ファイル読み取りやデータ処理が非常にシンプルになります。また、DataTable への変換により、柔軟なデータ操作も可能になります。
小規模データから大規模ファイルまで、Spire.XLS はさまざまなニーズに対応できる柔軟なソリューションを提供します。
本記事のコードはそのまま使用可能です。コピーして CSV ファイルのパスを調整するだけで動作します。さらに高度な機能については、公式ドキュメントをご参照ください。
A: .NET Framework には StreamReader などの標準機能もありますが、Spire.XLS には以下の利点があります:
A: はい。LoadFromFile() メソッドの2番目のパラメータを区切り文字に置き換えてください。
// タブ区切り
workbook.LoadFromFile("data.txt", "\t");
// セミコロン区切り
workbook.LoadFromFile("data.csv", ";");
// パイプ区切り
workbook.LoadFromFile("data.csv", "|");
A: はい。正確な行と列の範囲を定義することで、データの特定のサブセットを対象にできます。これは、ファイル全体を処理せずに特定の情報(ヘッダーをスキップする、関連する列に焦点を当てるなど)を抽出するのに役立ちます。
// 範囲を指定
int startRow = 2; // 2行目から(ヘッダーをスキップ)
int endRow = 4;
int startCol = 2;
int endCol = 6;
// ループ処理
for (int row = startRow; row <= endRow; row++)
{
for (int col = startCol; col <= endCol; col++)
{
string cellValue = worksheet.Range[row, col].Value;
Console.Write(cellValue + "\t");
}
}
注意:Spire.XLS は(Excel と同様に)1ベースのインデックスを使用するため、最初の行/列は(0ではなく)1となります。

C# による Excel ファイルの生成は、レポートシステムの構築、構造化データの出力、Excel ベースの業務自動化において非常に一般的な作業です。デスクトップアプリ、ASP.NET Core Web API、クロスプラットフォームアプリなど、どのような .NET プロジェクトでも、コードで .xlsx ファイルを生成することで、データ処理と連携を大幅に効率化できます。
本記事では、Spire.XLS for .NET(Excel を操作できる単体のライブラリ)を使用して、.NET 環境で Excel ファイルを作成する方法を紹介します。デスクトップアプリ、ASP.NET Web サービス、バックグラウンド処理など、さまざまな場面で活用可能です。ワークブックの新規作成、DataTable のエクスポート、サーバーサイドでの生成、書式や数式の適用といった主要機能を、実用的なコード例とともに解説します。
目次
Spire.XLS for .NET は、Microsoft Office をインストールせずに .xls や .xlsx ファイルをコードのみで作成できる軽量なライブラリです。COM 依存もないため、Web サーバーやクラウドアプリ、マイクロサービス環境に最適です。
NuGet パッケージマネージャーから簡単に導入できます:
Install-Package Spire.XLS
軽量用途には無料版の Free Spire.XLS for .NET も利用可能です:
Install-Package FreeSpire.XLS
小規模なデータ出力やテンプレートの生成には、C# コードで Excel ファイルを新規作成するのが効率的です。レイアウトや内容を柔軟に制御できます。
以下は、テキストと数値を含む基本的なワークシートを作成する例です:
using Spire.Xls;
// 新しいワークブックとワークシートを作成
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "概要";
// ヘッダーとデータを入力
// セル名でアクセス
sheet.Range["A1"].Text = "従業員";
sheet.Range["B1"].Text = "部署";
sheet.Range["C1"].Text = "給与";
// 行と列でアクセス
sheet.Range[2, 1].Text = "山田太郎";
sheet.Range[2, 2].Text = "人事部";
sheet.Range[2, 3].NumberValue = 650000;
sheet.Range[3, 1].Text = "佐藤花子";
sheet.Range[3, 2].Text = "情報システム部";
sheet.Range[3, 3].NumberValue = 720000;
// スタイルを適用
CellStyle headerStyle = workbook.Styles.Add("Header");
headerStyle.Font.IsBold = true;
sheet.Range["A1:C1"].Style = headerStyle;
sheet.Range.Style.Font.FontName = "Yu Gothic UI";
// 列の幅を自動調整
sheet.Range.AutoFitColumns();
// ファイルを保存
workbook.SaveToFile("BasicExcel.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
生成されたExcelファイル:

この方法は Excel がインストールされていない環境でも動作し、簡単なデータ出力や設定ファイルの作成に最適です。
データベースや API からの取得結果をそのまま Excel に出力したい場合、DataTable を使うのが一般的です。Spire.XLS を使えば、1 行ずつループすることなく、構造化されたデータをワークシートに簡単に取り込めます。
以下は、DataTable の内容をワークシートに取り込むサンプルです:
using System.Data;
using Spire.Xls;
// データテーブルを作成(シミュレーション)
DataTable dt = new DataTable("商品一覧");
dt.Columns.Add("商品名", typeof(string));
dt.Columns.Add("価格", typeof(double));
dt.Columns.Add("在庫数", typeof(int));
dt.Rows.Add("ノートパソコン", 129800, 20);
dt.Rows.Add("モニター", 19800, 50);
dt.Rows.Add("マウス", 2480, 150);
// Excel にインポート
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "在庫管理";
sheet.InsertDataTable(dt, true, 1, 1);
// 列幅を調整
sheet.AllocatedRange.ColumnWidth = 15;
// ファイルを保存
workbook.SaveToFile("InventoryReport.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
生成されたExcelファイル:

この手法は、在庫リスト、売上レポート、分析結果などの出力に広く活用されています。
関連情報:DataTable と Excel の相互変換方法(C#)
見やすくプロフェッショナルな Excel ファイルを作成するためには、データの出力に加えて、セルの書式設定や数式の挿入も重要です。C# と Spire.XLS を使えば、文字の色・太字・罫線・通貨形式・計算式などを自由に設定できます。
以下の例では、ヘッダー行のスタイル設定、通貨形式の適用、計算式の挿入、交互に背景色を変える処理を紹介しています:
using Spire.Xls;
using System.Drawing;
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "売上レポート";
// ヘッダーラベルを設定
sheet.Range["A1"].Text = "商品名";
sheet.Range["B1"].Text = "単価";
sheet.Range["C1"].Text = "数量";
sheet.Range["D1"].Text = "合計";
// サンプルデータを追加
string[,] items = {
{ "ボールペン", "150", "10" },
{ "ノート", "375", "5" },
{ "消しゴム", "99", "20" }
};
for (int i = 0; i < items.GetLength(0); i++)
{
int row = i + 2;
sheet.Range[$"A{row}"].Text = items[i, 0];
sheet.Range[$"B{row}"].NumberValue = double.Parse(items[i, 1]);
sheet.Range[$"C{row}"].NumberValue = double.Parse(items[i, 2]);
sheet.Range[$"D{row}"].Formula = $"=B{row}*C{row}";
}
// スタイル:ヘッダー行
CellStyle headerStyle = workbook.Styles.Add("HeaderStyle");
headerStyle.Font.IsBold = true;
headerStyle.Font.Color = Color.White;
headerStyle.Font.Size = 12;
headerStyle.Font.FontName = "Yu Gothic UI";
headerStyle.KnownColor = ExcelColors.DarkBlue;
headerStyle.HorizontalAlignment = HorizontalAlignType.Center;
headerStyle.VerticalAlignment = VerticalAlignType.Center;
headerStyle.Borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.Thick;
headerStyle.Borders[BordersLineType.EdgeLeft].LineStyle = LineStyleType.Thick;
sheet.Range["A1:D1"].Style = headerStyle;
// スタイル:データセル
CellStyle dataStyle = workbook.Styles.Add("DataStyle");
dataStyle.Font.FontName = "Yu Gothic UI";
dataStyle.NumberFormat = "\"¥\"#,##0"; // 円形式で小数なし
dataStyle.HorizontalAlignment = HorizontalAlignType.Right;
dataStyle.VerticalAlignment = VerticalAlignType.Center;
dataStyle.Borders[BordersLineType.EdgeLeft].LineStyle = LineStyleType.Thin;
dataStyle.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin;
// 単価・数量・合計列にスタイルを適用
sheet.Range["B2:D4"].Style = dataStyle;
// 任意:交互行の背景色を変更して読みやすく
for (int r = 2; r <= 4; r++)
{
if (r % 2 == 0)
sheet.Range[$"A{r}:D{r}"].Style.KnownColor = ExcelColors.LightYellow;
}
// 列幅と行の高さを調整
sheet.AllocatedRange.ColumnWidth = 10;
sheet.AllocatedRange.RowHeight = 20;
// ファイルを保存
workbook.SaveToFile("styled.xlsx", FileFormat.Version2016);
workbook.Dispose();
作成されたExcelファイル:

売上明細や会計帳簿など、視認性と自動集計が求められるシーンに最適です。
より高度な数値フォーマットについては、こちらをご覧ください: Excel セルの数値フォーマットを設定する方法(C#/VB.NET)
ASP.NET Core(.NET 6/7/8)を使用した Web アプリでは、ダッシュボードや管理画面で Excel 出力機能がよく利用されます。
以下のサンプルでは、Razor Pages を使用してサーバー側で Excel ファイルを生成し、HTTP 応答としてダウンロードさせる方法を紹介しています:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Spire.Xls;
using System.Data;
public class ExportModel : PageModel
{
public IActionResult OnGet()
{
// 専門的なデータをシミュレート:プロジェクト進捗レポート
DataTable dt = new DataTable("プロジェクト進捗");
dt.Columns.Add("プロジェクトID", typeof(string));
dt.Columns.Add("プロジェクト名", typeof(string));
dt.Columns.Add("担当者", typeof(string));
dt.Columns.Add("開始日", typeof(DateTime));
dt.Columns.Add("予定完了日", typeof(DateTime));
dt.Columns.Add("進捗状況", typeof(string));
dt.Columns.Add("ステータス", typeof(string));
dt.Rows.Add("PRJ001", "スマート倉庫システム", "張 強", new DateTime(2024, 3, 1), new DateTime(2024, 9, 30), "65%", "進行中");
dt.Rows.Add("PRJ002", "企業ポータルサイトのアップグレード", "李 華", new DateTime(2024, 5, 10), new DateTime(2024, 7, 15), "100%", "完了");
dt.Rows.Add("PRJ003", "データガバナンスプラットフォーム構築", "王 敏", new DateTime(2024, 6, 1), new DateTime(2024, 12, 31), "30%", "遅延");
// Excel ワークブックとワークシートを作成
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "プロジェクト進捗レポート";
// テーブル(ヘッダー付き)を挿入
sheet.InsertDataTable(dt, true, 1, 1);
// ヘッダースタイルを設定
CellStyle headerStyle = workbook.Styles.Add("HeaderStyle");
headerStyle.Font.IsBold = true;
headerStyle.HorizontalAlignment = HorizontalAlignType.Center;
headerStyle.VerticalAlignment = VerticalAlignType.Center;
sheet.Rows[0].Style = headerStyle;
sheet.Range.Style.Font.FontName = "Yu Gothic UI";
// 列幅を自動調整
sheet.AllocatedRange.AutoFitColumns();
// メモリストリームに保存
using var stream = new MemoryStream();
workbook.SaveToStream(stream, FileFormat.Version2016);
stream.Position = 0;
// ファイルを返す
return File(stream.ToArray(),
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"プロジェクト進捗レポート.xlsx");
}
}
エクスポートされたExcelファイル:

このアプローチは、社内ポータル、業務ツール、データ出力 API などに幅広く活用できます。
従来の ASP.NET Web Forms を利用している場合でも、Spire.XLS を使えばサーバーサイドで Excel ファイルを動的に生成し、クライアントに直接ダウンロードさせることが可能です。ファイルをディスクに保存する必要はありません。
以下は Web Forms アプリでの実装例です:
using Spire.Xls;
using System;
using System.IO;
namespace YourNamespace
{
public partial class Default : System.Web.UI.Page
{
protected void btnExport_Click(object sender, EventArgs e)
{
// Excel ファイルを作成し、ダウンロードとして出力
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "ユーザー一覧";
// ヘッダー
string[] headers = { "ユーザーID", "氏名", "所属部署", "入社日" };
for (int i = 0; i < headers.Length; i++)
{
sheet.Range[1, i + 1].Text = headers[i];
sheet.Range[1, i + 1].Style.Font.IsBold = true;
}
// サンプルデータ
string[,] data = {
{ "U001", "佐藤 美咲", "人事部", "2023-01-15" },
{ "U002", "山本 健太", "情報システム部", "2022-11-03" }
};
// データを入力
for (int r = 0; r < data.GetLength(0); r++)
for (int c = 0; c < data.GetLength(1); c++)
sheet.Range[r + 2, c + 1].Text = data[r, c];
// 列幅を自動調整
sheet.Range.Style.Font.FontName = "Yu Gothic UI";
sheet.AllocatedRange.AutoFitColumns();
// ブラウザでダウンロードさせる
using (MemoryStream ms = new MemoryStream())
{
workbook.SaveToStream(ms, FileFormat.Version2016);
byte[] bytes = ms.ToArray();
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("Content-Disposition", "attachment; filename=ユーザー一覧.xlsx");
Response.BinaryWrite(bytes);
Response.End();
}
}
}
}
エクスポートされたExcelファイル:

Excel ファイルを即時出力できるため、社内システムや業務アプリに便利な仕組みです。
Q. C# で Excel ファイルを作成するには? Spire.XLS などのライブラリを使うことで、Office をインストールせずに Excel ファイルを作成・保存できます。
Q. データを Excel にエクスポートするには? DataTable をワークシートに読み込んで保存すれば簡単にエクスポートできます。列ヘッダーや書式も自動設定されます。
Q. ASP.NET で Excel ファイルを生成するには?
ASP.NET Core ではファイルをメモリ上で作成し、HTTP 応答として返します。Web Forms では Response.BinaryWrite() を使用して出力できます。
Q. Spire.XLS は .NET Core に対応していますか? はい。Spire.XLS は .NET Core 3.1、.NET 5、.NET 6、.NET 7、.NET 8 に対応しており、クロスプラットフォーム開発にも利用できます。
Spire.XLS for .NET を使用すれば、C# で簡単かつ柔軟に Excel ファイルを作成できます。デスクトップアプリ、ASP.NET Core、Web Forms、バッチ処理など、あらゆる .NET 環境に対応しています。
DataTable のエクスポート、書式付きレポートの生成、自動化された出力処理など、本記事で紹介した方法を活用すれば、Excel 出力機能をすぐに実装できます。
👉 無料の一時ライセンスを申請 して、すべての機能を試用し、評価版の制限を解除しましょう。
C# でのストリーム操作を使用することで、開発者は Excel ファイルを動的に作成、読み込み、保存することができ、柔軟かつ効率的なデータ処理が可能になります。この方法では、物理的なファイルストレージが不要になり、アプリケーションのパフォーマンスと応答性が向上します。リアルタイムでのデータ操作やストレージに制限のある環境に最適で、データ交換やシステム統合を簡素化します。本記事では、Spire.XLS for .NET を使用して、C# でのストリームを介した Excel ファイルの作成、読み込み、編集、保存方法を示し、アジャイルでスケーラブルなデータ管理ソリューションを提供します。
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
Spire.XLS for .NET を使用すると、開発者は Workbook オブジェクトを初期化し、データやフォーマットを埋め込んでから、Workbook.SaveToStream() メソッドを使用してワークブックをストリームに保存することで、メモリ内で Excel ファイルを動的に作成できます。この方法では、物理的なファイルストレージが不要になり、アプリケーションのパフォーマンスと応答性が向上します。
以下は、C# で Excel ファイルを作成し、ストリームに保存する手順です:
using Spire.Xls;
using System.Data;
using System.Drawing;
namespace CreateExcelStream
{
class Program
{
static void Main(string[] args)
{
// 新しいワークブックインスタンスを作成
Workbook workbook = new Workbook();
// ワークブックの最初のワークシートにアクセス
Worksheet sheet = workbook.Worksheets[0];
// サンプルデータを含むDataTableを作成してデータを追加
DataTable dataTable = new DataTable("データ");
dataTable.Columns.Add("ID", typeof(int));
dataTable.Columns.Add("名前", typeof(string));
dataTable.Columns.Add("年齢", typeof(int));
dataTable.Columns.Add("国", typeof(string));
dataTable.Columns.Add("給与 ($)", typeof(decimal));
dataTable.Rows.Add(101, "ジョン・スミス", 28, "アメリカ", 54000m);
dataTable.Rows.Add(102, "マリア・ガルシア", 34, "日本", 65500m);
dataTable.Rows.Add(103, "リアム・ジョンソン", 22, "カナダ", 48000m);
dataTable.Rows.Add(104, "エマ・ブラウン", 30, "オーストラリア", 72300m);
dataTable.Rows.Add(105, "ウェイ・チャン", 40, "中国", 58700m);
dataTable.Rows.Add(106, "ソフィア・ロペス", 26, "メキシコ", 45200m);
// DataTableからワークシートにデータを挿入
sheet.InsertDataTable(dataTable, true, 1, 1);
// ワークシートをフォーマット
// ヘッダー行をスタイル設定
sheet.Rows[0].Style.Color = Color.LightSkyBlue;
sheet.Rows[0].Style.Font.FontName = "Yu Gothic UI";
sheet.Rows[0].Style.Font.Size = 12f;
sheet.Rows[0].BorderAround(); // ヘッダー行に外枠を追加
sheet.Rows[0].Borders.Color = Color.LightSteelBlue; // 枠線の色を設定
// データ行をスタイル設定
for (int i = 1; i < sheet.AllocatedRange.Rows.Count(); i++)
{
sheet.Rows[i].Style.Color = Color.LightGray;
sheet.Rows[i].Style.Font.FontName = "Yu Gothic UI";
sheet.Rows[i].Style.Font.Size = 11f;
}
sheet.Range[2, 1, sheet.Rows.Count(), sheet.Columns.Count()].BorderInside(); // データ行に内枠を追加
sheet.Range[2, 1, sheet.Rows.Count(), sheet.Columns.Count()].Borders.Color = Color.LightSteelBlue; // 枠線の色を設定
// 列幅を内容に合わせて調整
for (int j = 1; j <= sheet.AllocatedRange.Columns.Count(); j++)
{
sheet.AutoFitColumn(j);
}
// ワークブックをメモリストリームに保存
MemoryStream stream = new MemoryStream();
workbook.SaveToStream(stream, FileFormat.Version2016);
// ストリームの内容をファイルに書き込む
File.WriteAllBytes("output/ストリームでExcelファイルを作成.xlsx", stream.ToArray());
// リソースを解放
workbook.Dispose();
}
}
}

Spire.XLS for .NET を使用すると、Workbook.LoadFromStream() メソッドで直接ストリームから Excel ファイルを読み込むことができます。ファイルが読み込まれると、開発者はセルデータに簡単にアクセスでき、ファイル I/O 操作を必要とせずにメモリの使用効率を最適化し、迅速かつ柔軟にデータ処理を行えます。
C# でストリームから Excel ファイルを読み込み、データを取得する手順は次の通りです:
using Spire.Xls;
namespace LoadExcelStream
{
class Program
{
static void Main(string[] args)
{
// Workbookクラスのインスタンスを作成
Workbook workbook = new Workbook();
// メモリストリームを作成
MemoryStream stream = new MemoryStream();
File.OpenRead("Sample.xlsx").CopyTo(stream);
// ストリームからExcelファイルを読み込む
workbook.LoadFromStream(stream);
// ワークブック内の最初のワークシートにアクセス
Worksheet sheet = workbook.Worksheets[0];
// ワークシートから取得したデータを格納するリストを初期化
List<List<string>> data = new List<List<string>>();
for (int i = 0; i < sheet.AllocatedRange.Rows.Count(); i++)
{
// 各行のデータを保持するリストを作成
List<string> lines = new List<string>();
for (int j = 0; j < sheet.AllocatedRange.Columns.Count(); j++)
{
// セルのテキストを取得して行に追加
lines.Add(sheet.AllocatedRange[i + 1, j + 1].Value);
}
// 行をデータリストに追加
data.Add(lines);
}
// 取得したデータを出力するか、他の操作に利用
foreach (List<string> lines in data)
{
Console.WriteLine(string.Join(" | ", lines));
}
}
}
}

Spire.XLS for .NET を使用すると、Excel ファイルをメモリ内で編集できます。最初にファイルを Workbook オブジェクトに読み込んでから、セルの値やフォーマットを変更し、変更後のファイルをストリームに保存することができます。この方法により、物理的なストレージを使用せずにシームレスなリアルタイムの変更が可能です。
C# でストリーム内の Excel ファイルを編集する手順は次の通りです:
using Spire.Xls;
using System.Drawing;
namespace ModifyExcelStream
{
class Program
{
static void Main(string[] args)
{
// Workbookクラスの新しいインスタンスを作成
Workbook workbook = new Workbook();
// メモリストリームを作成
MemoryStream stream = new MemoryStream();
File.OpenRead("Sample.xlsx").CopyTo(stream);
// ストリームからExcelファイルを読み込む
workbook.LoadFromStream(stream);
// ワークブック内の最初のワークシートにアクセス
Worksheet sheet = workbook.Worksheets[0];
// ヘッダー行のスタイルを変更
CellRange headerRow = sheet.AllocatedRange.Rows[0];
headerRow.Style.Font.FontName = "Yu Gothic UI";
headerRow.Style.Font.Size = 12f;
headerRow.Style.Color = Color.LightBlue;
// データ行のスタイルを変更
for (int i = 1; i < sheet.AllocatedRange.Rows.Count(); i++)
{
CellRange dataRow = sheet.AllocatedRange.Rows[i];
dataRow.Style.Font.FontName = "Yu Mincho";
dataRow.Style.Font.Size = 10f;
dataRow.Style.Color = Color.LightGray;
// 行ごとに交互の色を付ける(偶数行)
if (i % 2 == 0)
{
dataRow.Style.Color = Color.LightSlateGray;
}
}
// 列の幅をコンテンツに基づいて自動調整
for (int k = 1; k <= sheet.AllocatedRange.Columns.Count(); k++)
{
sheet.AutoFitColumn(k);
}
// 枠線の色を変更
sheet.AllocatedRange.Style.Borders.Color = Color.White;
// 修正したワークブックをストリームに保存
workbook.SaveToStream(stream);
// ストリームの内容を新しいファイルに書き込む
File.WriteAllBytes("output/ストリームでExcelファイルを修正.xlsx", stream.ToArray());
// リソースを解放
workbook.Dispose();
}
}
}

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Excel 文書は簡単に印刷できますが、特別な印刷要件がある場合は少し複雑になることがあります。たとえば、シートの選択範囲のみを印刷する、各ページにヘッダー行を繰り返す、またはワークシートを 1 ページに収めるなどです。この記事では、Spire.XLS for .NET を使用して、C# で Excel 文書の印刷オプションを設定する方法と、Excel 文書をプリンターに送信する方法について説明します。
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
Excel ワークシートのページ設定は、ワークシートの印刷方法を制御するためのオプションを提供します。これには、コメントの印刷の有無、グリッドラインの印刷、印刷するセル範囲の指定が含まれます。Spire.XLS は、これらの設定を管理するための PageSetup オブジェクトを提供します。以下は、Spire.XLS for .NET を使用して PageSetup を通じて Excel の印刷オプションを設定する手順です。
using Spire.Xls;
namespace PrintOptions
{
class Program
{
static void Main(string[] args)
{
// ワークブックを作成
Workbook workbook = new Workbook();
// Excel ドキュメントをロード
workbook.LoadFromFile("Sample.xlsx");
// 最初のワークシートを取得
Worksheet worksheet = workbook.Worksheets[0];
// 最初のワークシートの PageSetup オブジェクトを取得
PageSetup pageSetup = worksheet.PageSetup;
// ページの余白を設定
pageSetup.TopMargin = 0.3;
pageSetup.BottomMargin = 0.3;
pageSetup.LeftMargin = 0.3;
pageSetup.RightMargin = 0.3;
// 印刷範囲を指定
pageSetup.PrintArea = "A1:D10";
// タイトル行を指定
pageSetup.PrintTitleRows = "$1:$2";
// 行/列の見出しを印刷することを許可
pageSetup.IsPrintHeadings = true;
// グリッドラインを印刷することを許可
pageSetup.IsPrintGridlines = true;
// ワークシートに表示されているコメントを印刷することを許可
pageSetup.PrintComments = PrintCommentType.InPlace;
// 印刷品質を設定 (dpi)
pageSetup.PrintQuality = 300;
// 白黒モードでワークシートを印刷することを許可
pageSetup.BlackAndWhite = true;
// 印刷順序を設定
pageSetup.Order = OrderType.OverThenDown;
// ワークシートを1ページに収める
pageSetup.IsFitToPage = true;
// ワークブックを保存
workbook.SaveToFile("output/Excelページ印刷設定.xlsx");
workbook.Dispose();
}
}
}

印刷ダイアログボックスは、特定の印刷ジョブのオプションを選択するためにユーザーに提供されます。たとえば、ユーザーは使用するプリンターを指定できます。以下は、Spire.XLS for .NET を使用して Excel 文書を印刷ダイアログに送信する手順です。
using System;
using Spire.Xls;
using System.Drawing.Printing;
using System.Windows.Forms;
namespace PrintExcelUsingPrintDialog
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// ワークブックオブジェクトを作成
Workbook workbook = new Workbook();
// Excelファイルをロード
workbook.LoadFromFile("Sample.xlsx");
// ワークシートを1ページに収める
PageSetup pageSetup = workbook.Worksheets[0].PageSetup;
pageSetup.IsFitToPage = true;
// PrintDialogオブジェクトを作成
PrintDialog dialog = new PrintDialog();
// プリンタ設定を指定
dialog.AllowCurrentPage = true;
dialog.AllowSomePages = true;
dialog.AllowSelection = true;
dialog.UseEXDialog = true;
dialog.PrinterSettings.Duplex = Duplex.Simplex;
// ダイアログをワークブックに適用
workbook.PrintDialog = dialog;
// ワークブックに基づいてPrintDocumentオブジェクトを作成
PrintDocument printDocument = workbook.PrintDocument;
// 印刷ダイアログを表示
if (dialog.ShowDialog() == DialogResult.OK)
{
printDocument.Print();
}
}
}
}
印刷ダイアログや印刷プロセスを表示したくない場合は、指定したプリンターに Excel 文書をサイレント印刷できます。以下はその手順です。
using Spire.Xls;
using System.Drawing.Printing;
namespace SilentlyPrint
{
class Program
{
static void Main(string[] args)
{
// ワークブックオブジェクトを作成
Workbook workbook = new Workbook();
// Excelファイルをロード
workbook.LoadFromFile("Sample.xlsx");
// ワークシートを1ページに収める
PageSetup pageSetup = workbook.Worksheets[0].PageSetup;
pageSetup.IsFitToPage = true;
// 印刷プロセスを表示しないようにStandardPrintControllerを設定
workbook.PrintDocument.PrintController = new StandardPrintController();
// ワークブックからPrinterSettingsを取得
PrinterSettings settings = workbook.PrintDocument.PrinterSettings;
// プリンタ名、両面印刷モード、および印刷ページを指定
settings.PrinterName = "HP LaserJet P1007";
settings.Duplex = Duplex.Simplex;
settings.FromPage = 1;
settings.ToPage = 3;
// ワークブックを印刷
workbook.PrintDocument.Print();
}
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Excel スプレッドシートを印刷する際、特に複雑なデータセットや詳細なレポートを含む場合、ページ設定を適切に行うことが重要です。Excel のページ設定オプションを使用することで、ページの余白、向き、用紙サイズ、拡大縮小などの重要な要素を調整し、さまざまな印刷ニーズに合わせてドキュメントを最適化することができます。これにより、コンテンツが見栄え良く、プロフェッショナルに仕上がるように調整できます。本記事では、C# で Spire.XLS for .NET を使用して Excel ファイルのページ設定オプションを設定する方法を説明します。
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
Spire.XLS for .NET の PageSetup クラスは、Excel ワークシートのページ設定オプションを構成するために使用されます。ワークシートの PageSetup オブジェクトは、Worksheet.PageSetup プロパティを通じてアクセスできます。次に、PageSetup.TopMargin、PageSetup.BottomMargin、PageSetup.LeftMargin、PageSetup.RightMargin、PageSetup.HeaderMarginInch、PageSetup.FooterMarginInch プロパティを使用して、ワークシートの余白を設定します。詳細な手順は以下の通りです。
using Spire.Xls;
namespace SetPageMargins
{
internal class Program
{
static void Main(string[] args)
{
// Workbook オブジェクトを作成
Workbook workbook = new Workbook();
// Excel ファイルを読み込む
workbook.LoadFromFile("Sample.xlsx");
// 最初のワークシートを取得
Worksheet sheet = workbook.Worksheets[0];
// ワークシートの PageSetup オブジェクトを取得
PageSetup pageSetup = sheet.PageSetup;
// ワークシートの上下左右のページ余白を設定
// 単位はインチ (1 インチ = 2.54 cm)
pageSetup.TopMargin = 1;
pageSetup.BottomMargin = 1;
pageSetup.LeftMargin = 1;
pageSetup.RightMargin = 1;
pageSetup.HeaderMarginInch = 1;
pageSetup.FooterMarginInch = 1;
// 変更したワークブックを新しいファイルに保存
workbook.SaveToFile("output/Excelのページ余白を設定.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

PageSetup.Orientation プロパティを使用すると、ページの印刷向きを設定できます。印刷向きは、縦向き(ポートレート)または横向き(ランドスケープ)から選択できます。詳細な手順は以下の通りです。
using Spire.Xls;
namespace SetPageOrientation
{
internal class Program
{
static void Main(string[] args)
{
// ページの向き
// Workbook オブジェクトを作成
Workbook workbook = new Workbook();
// Excel ファイルを読み込む
workbook.LoadFromFile("Sample.xlsx");
// 最初のワークシートを取得
Worksheet sheet = workbook.Worksheets[0];
// ワークシートの PageSetup オブジェクトを取得
PageSetup pageSetup = sheet.PageSetup;
// ワークシートを印刷する際のページの向きを横向きに設定
pageSetup.Orientation = PageOrientationType.Landscape;
// 変更したワークブックを新しいファイルに保存
workbook.SaveToFile("output/Excelのページの向きを設定.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

PageSetup.PaperSize プロパティを使用すると、ワークシートの印刷用紙サイズを選択できます。これには、A3、A4、A5、B4、B5、レター、リーガル、タブロイドなどのさまざまな用紙サイズが含まれます。詳細な手順は以下の通りです。
using Spire.Xls;
namespace SetPaperSize
{
internal class Program
{
static void Main(string[] args)
{
// Workbook オブジェクトを作成
Workbook workbook = new Workbook();
// Excel ファイルを読み込む
workbook.LoadFromFile("Sample.xlsx");
// 最初のワークシートを取得
Worksheet sheet = workbook.Worksheets[0];
// ワークシートの PageSetup オブジェクトを取得
PageSetup pageSetup = sheet.PageSetup;
// 用紙サイズを A4 に設定
pageSetup.PaperSize = PaperSizeType.PaperA4;
// 変更したワークブックを新しいファイルに保存
workbook.SaveToFile("output/Excelの用紙サイズを設定.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

PageSetup.PrintArea プロパティを使用して、印刷したい範囲を指定することができます。詳細な手順は以下の通りです。
using Spire.Xls;
namespace SetPrintArea
{
internal class Program
{
static void Main(string[] args)
{
// Workbook オブジェクトを作成
Workbook workbook = new Workbook();
// Excel ファイルを読み込む
workbook.LoadFromFile("Sample.xlsx");
// 最初のワークシートを取得
Worksheet sheet = workbook.Worksheets[0];
// ワークシートの PageSetup オブジェクトを取得
PageSetup pageSetup = sheet.PageSetup;
// 印刷範囲を "A1:E5" に設定
pageSetup.PrintArea = "A1:E5";
// 変更したワークブックを新しいファイルに保存
workbook.SaveToFile("output/Excelの印刷領域を設定.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

ワークシートの内容を元のサイズの特定の割合に拡大縮小する場合、PageSetup.Zoom プロパティを使用します。詳細な手順は以下の通りです。
using Spire.Xls;
namespace SetScalingFactor
{
internal class Program
{
static void Main(string[] args)
{
// Workbook オブジェクトを作成
Workbook workbook = new Workbook();
// Excel ファイルを読み込む
workbook.LoadFromFile("Sample.xlsx");
// 最初のワークシートを取得
Worksheet sheet = workbook.Worksheets[0];
// ワークシートの PageSetup オブジェクトを取得
PageSetup pageSetup = sheet.PageSetup;
// ワークシートの拡大縮小率を 90% に設定
pageSetup.Zoom = 90;
// 変更したワークブックを新しいファイルに保存
workbook.SaveToFile("output/Excelの拡大縮小率を設定.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

Spire.XLS を使用すると、PageSetup.FitToPagesTall および PageSetup.FitToPagesWide プロパティを使用して、ワークシートの内容を特定のページ数に合わせて印刷することができます。詳細な手順は以下の通りです。
using Spire.Xls;
namespace SetFitToPages
{
internal class Program
{
static void Main(string[] args)
{
// Workbook オブジェクトを作成
Workbook workbook = new Workbook();
// Excel ファイルを読み込む
workbook.LoadFromFile("Sample.xlsx");
// 最初のワークシートを取得
Worksheet sheet = workbook.Worksheets[0];
// ワークシートの PageSetup オブジェクトを取得
PageSetup pageSetup = sheet.PageSetup;
// ワークシートの内容を縦に 1 ページに収める
pageSetup.FitToPagesTall = 1;
// ワークシートの内容を横に 1 ページに収める
pageSetup.FitToPagesWide = 1;
// 変更したワークブックを新しいファイルに保存
workbook.SaveToFile("output/ページフィットオプションを設定.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}
}

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Excel のドキュメントプロパティ(メタデータとしても知られています)は、Excel ファイルの内容や背景を理解するために重要です。これらは、ドキュメントの内容、作成者、作成・修正履歴などに関する有益な情報を提供し、ファイルの効率的な整理や検索を容易にします。本記事では、Excel にドキュメントプロパティを追加する方法に加え、C# で Spire.XLS for .NET を使用して Excel ワークブックからドキュメントプロパティを読み取る方法や削除する方法を説明します。
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
Excel のプロパティは、主に次の2つのカテゴリに分けられます:
Spire.XLS for .NET を使用すると、Excel ファイルの標準およびカスタムの両方のドキュメントプロパティを読み取ることができます。以下に詳細な手順を示します:
using Spire.Xls;
using Spire.Xls.Collections;
using Spire.Xls.Core;
using System.Text;
namespace ReadExcelProperty
{
class Program
{
static void Main(string[] args)
{
// Workbook のインスタンスを作成
Workbook wb = new Workbook();
// Excel ファイルを読み込む
wb.LoadFromFile("Sample.xlsx");
// StringBuilder のインスタンスを作成
StringBuilder sb = new StringBuilder();
// 標準プロパティのコレクションを取得
BuiltInDocumentProperties standardProperties = wb.DocumentProperties;
// 標準プロパティを取得し、StringBuilder インスタンスに追加
sb.AppendLine("標準ドキュメント プロパティ:");
sb.AppendLine("タイトル:" + standardProperties.Title);
sb.AppendLine("サブタイトル:" + standardProperties.Subject);
sb.AppendLine("作成者:" + standardProperties.Author);
sb.AppendLine("管理者:" + standardProperties.Manager);
sb.AppendLine("会社名:" + standardProperties.Company);
sb.AppendLine("分類:" + standardProperties.Category);
sb.AppendLine("キーワード:" + standardProperties.Keywords);
sb.AppendLine("コメント:" + standardProperties.Comments);
// カスタムプロパティのコレクションを取得
ICustomDocumentProperties customProperties = wb.CustomDocumentProperties;
sb.AppendLine("\r\nカスタム ドキュメント プロパティ:");
// コレクションを反復処理
for (int i = 0; i < customProperties.Count; i++)
{
// カスタムプロパティの名前と値を取得し、StringBuilder インスタンスに追加
string name = customProperties[i].Name;
string value = customProperties[i].Value.ToString();
sb.AppendLine(name + ":" + value);
}
// 結果をテキストファイルに書き込む
File.WriteAllText("output/Excelドキュメントのプロパティ.txt", sb.ToString());
wb.Dispose();
}
}
}

標準のドキュメントプロパティを削除するには、特定のプロパティの値を空に設定するだけで簡単に行えます。カスタムドキュメントプロパティの場合は、ICustomDocumentProperties.Remove() メソッドを使用して削除することができます。以下に詳細な手順を示します:
using Spire.Xls;
using Spire.Xls.Collections;
using Spire.Xls.Core;
namespace RemoveExcelProperty
{
class Program
{
static void Main(string[] args)
{
// Workbook のインスタンスを作成
Workbook wb = new Workbook();
// Excel ファイルを読み込む
wb.LoadFromFile("Sample.xlsx");
// 標準プロパティのコレクションを取得
BuiltInDocumentProperties standardProperties = wb.DocumentProperties;
// プロパティを空に設定して削除
standardProperties.Title = "";
standardProperties.Subject = "";
standardProperties.Author = "";
standardProperties.Manager = "";
standardProperties.Company = "";
standardProperties.Category = "";
standardProperties.Keywords = "";
standardProperties.Comments = "";
// カスタムプロパティのコレクションを取得
ICustomDocumentProperties customProperties = wb.CustomDocumentProperties;
// カスタムプロパティをクリア
customProperties.Clear();
// ワークブックを保存
wb.SaveToFile("output/Excelプロパティの削除.xlsx");
wb.Dispose();
}
}
}

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
ドキュメントプロパティ、またはメタデータは、ドキュメントを記述する一連のデータです。Excel ファイルでは、著者、タイトル、キーワードなどの組み込みドキュメントプロパティを追加して、フォルダー内のドキュメントをすばやく見つけて識別することができます。また、カスタムプロパティを追加して、Excel ドキュメントに関する詳細情報を提供することもできます。この記事では、Spire.XLS for .NET を使用して、C# コードで Excel ドキュメントに組み込みおよびカスタムのドキュメントプロパティを追加する方法を説明します。
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
組み込みドキュメントプロパティは、タイトル、件名、著者、カテゴリなど、ドキュメントに関する基本情報です。これらのプロパティの名前は編集できませんが、Spire.XLS for .NET を使用してこれらのプロパティに特定の値を設定できます。以下は詳細な手順です。
using Spire.Xls;
namespace ExcelProperties
{
class Program
{
static void Main(string[] args)
{
//Workbookオブジェクトを作成
Workbook workbook = new Workbook();
//サンプルのExcelドキュメントを読み込む
workbook.LoadFromFile("Sample.xlsx");
//Excelワークブックの組み込みドキュメントプロパティを設定
workbook.DocumentProperties.Author = "E-iceblueチーム";
workbook.DocumentProperties.Title = "Excelに組み込みドキュメントプロパティを追加";
workbook.DocumentProperties.Keywords = "Excel, ドキュメントプロパティ, C#, VB.NET";
workbook.DocumentProperties.Category = "Spire.XLSデモ";
workbook.DocumentProperties.Company = "E-iceblue";
workbook.DocumentProperties.Comments = "ドキュメントプロパティは、ファイルに関する詳細情報で、ファイルを説明または識別します。";
//結果のドキュメントを保存
workbook.SaveToFile("Excelの組み込みプロパティ.xlsx", FileFormat.Version2013);
workbook.Dispose();
}
}
}

カスタムドキュメントプロパティは、Excel ドキュメントに対して定義できる追加のプロパティです。Spire.XLS for .NET を使用して、指定された名前と値でカスタムプロパティを追加できます。以下は詳細な手順です。
using Spire.Xls;
using System;
namespace CustomExcelProperties
{
class Program
{
static void Main(string[] args)
{
//Workbookオブジェクトを作成
Workbook workbook = new Workbook();
//サンプルのExcelドキュメントを読み込む
workbook.LoadFromFile("Sample.xlsx");
//ドキュメントにカスタムドキュメントプロパティを追加
workbook.CustomDocumentProperties.Add("_MarkAsFinal", true);
workbook.CustomDocumentProperties.Add("編集者", "E-iceblue");
workbook.CustomDocumentProperties.Add("電話番号", 12345678);
workbook.CustomDocumentProperties.Add("ドキュメントID", 1);
workbook.CustomDocumentProperties.Add("改訂日", DateTime.Now);
//結果のドキュメントを保存
workbook.SaveToFile("Excelのカスタムプロパティ.xlsx", FileFormat.Version2013);
workbook.Dispose();
}
}
}

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Excel スプレッドシートは、データを表形式で整理、分析、表示するために広く使用されているファイル形式です。プログラムで Excel ファイルと対話する能力は非常に価値があり、ソフトウェアアプリケーションに Excel の機能を自動化および統合することができます。この機能は、大量のデータを扱う場合や複雑な計算を行う場合、またはデータを動的に生成または更新する必要がある場合に特に有用です。この記事では、Spire.XLS for .NET を使用して、C# で Excel ドキュメントを作成、読み取り、更新する方法を紹介します。
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
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 ドキュメントをゼロから作成する手順です。
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();
}
}
}

Worksheet.Range.Value プロパティは、セルの数値またはテキスト値を文字列として返します。ワークシート全体またはセル範囲のデータを取得するには、その中のセルをループします。以下は、Spire.XLS for .NET を使用してワークシートのデータを取得する手順です。
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();
}
}
}
}

あるセルの値を変更するには、Worksheet.Range.Value プロパティで値を割り当て直すだけです。以下はその詳細な手順です。
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 日間有効な一時ライセンスを取得してください。
Excel のワークシートに大量のデータがある場合、特定の条件に基づいてそれを複数の Excel ファイルに分割することは非常に良い選択です。ワークシートをより小さく、管理しやすいファイルに分割することで、作業効率を向上させ、データ分析を容易にすることができます。この記事では、Spire.XLS for .NET を使用して Excel でワークシートを複数のファイルに分割する方法について説明します。
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLSSpire.XLS for .NET が提供する Worksheet.Copy (CellRange sourceRange, CellRange destRange) メソッドを使用すると、指定したセル範囲を元の Excel ファイルから新しい Excel ファイルにコピーすることで、ワークシートを分割できます。以下は詳細な手順です。
using Spire.Xls;
namespace splitworksheet
{
class Program
{
static void Main(string[] args)
{
//Workbook インスタンスを作成する
Workbook originalBook= new Workbook();
//「sample.xlsx」を読み込む
originalBook.LoadFromFile("sample.xlsx");
//最初のワークシートを取得する
Worksheet sheet = originalBook.Worksheets[0];
//タイトル行を取得する
CellRange headerRow = sheet.Range[1, 1, 1,5];
//2つのセル範囲を取得する
CellRange range1 = sheet.Range[2, 1, 6, sheet.LastColumn];
CellRange range2 = sheet.Range[7, 1, sheet.LastRow, sheet.LastColumn];
//新しいWorkbook インスタンスを作成する
Workbook newBook1 = new Workbook();
//最初のワークシートを取得する
Worksheet newSheet1 = newBook1.Worksheets[0];
//タイトル行とRange1をそのワークシートにコピーする
sheet.Copy(headerRow, newSheet1.Range[1, 1]);
sheet.Copy(range1, newSheet1.Range[2, 1]);
//元のワークブックから列幅を新しいワークブックにコピーする
for (int i = 0; (i < sheet.LastColumn); i++)
{
newBook1.Worksheets[0].SetColumnWidth(i + 1, sheet.GetColumnWidth(i + 1));
}
//新しいワークブックをExcelファイルに保存する
newBook1.SaveToFile("生産部.xlsx", ExcelVersion.Version2016);
//別の新しいWorkbook インスタンスを作成する
Workbook newBook2 = new Workbook();
//最初のワークシートを取得する
Worksheet newSheet2 = newBook2.Worksheets[0];
//タイトル行とRange2をそのワークシートにコピーする
sheet.Copy(headerRow, newSheet2.Range[1, 1]);
sheet.Copy(range2, newSheet2.Range[2, 1]);
//元のワークブックから列幅を新しいワークブックにコピーする
for (int i = 0; (i < sheet.LastColumn); i++)
{
newBook2.Worksheets[0].SetColumnWidth(i + 1, sheet.GetColumnWidth(i + 1));
}
//新しいワークブックを別のExcelファイルに保存する
newBook2.SaveToFile("IT部門.xlsx", ExcelVersion.Version2016);
}
}
}Imports Spire.XLS
Namespace splitworksheet
Class Program
Private Shared Sub Main(ByVal args() As String)
'Workbook インスタンスを作成する
Dim originalBook As Workbook = New Workbook
'「sample.xlsx」を読み込む
originalBook.LoadFromFile("sample.xlsx")
'最初のワークシートを取得する
Dim sheet As Worksheet = originalBook.Worksheets(0)
'タイトル行を取得する
Dim headerRow As CellRange = sheet.Range(1, 1, 1, 5)
'2つのセル範囲を取得する
Dim range1 As CellRange = sheet.Range(2, 1, 6, sheet.LastColumn)
Dim range2 As CellRange = sheet.Range(7, 1, sheet.LastRow, sheet.LastColumn)
'新しいWorkbook インスタンスを作成する
Dim newBook1 As Workbook = New Workbook
'最初のワークシートを取得する
Dim newSheet1 As Worksheet = newBook1.Worksheets(0)
'タイトル行とRange1をそのワークシートにコピーする
sheet.Copy(headerRow, newSheet1.Range(1, 1))
sheet.Copy(range1, newSheet1.Range(2, 1))
'元のワークブックから列幅を新しいワークブックにコピーする
Dim i As Integer = 0
While (i < sheet.LastColumn)
newBook1.Worksheets(0).SetColumnWidth(i + 1, sheet.GetColumnWidth(i + 1))
i += 1
End While
'新しいワークブックをExcelファイルに保存する
newBook1.SaveToFile("生産部.xlsx", ExcelVersion.Version2016)
'別の新しいWorkbook インスタンスを作成する
Dim newBook2 As Workbook = New Workbook
'最初のワークシートを取得する
Dim newSheet2 As Worksheet = newBook2.Worksheets(0)
'タイトル行とRange2をそのワークシートにコピーする
sheet.Copy(headerRow, newSheet2.Range(1, 1))
sheet.Copy(range2, newSheet2.Range(2, 1))
'元のワークブックから列幅を新しいワークブックにコピーする
Dim i As Integer = 0
While (i < sheet.LastColumn)
newBook2.Worksheets(0).SetColumnWidth(i + 1, sheet.GetColumnWidth(i + 1))
i += 1
End While
'新しいワークブックを別のExcelファイルに保存する
newBook2.SaveToFile("IT部門.xlsx", ExcelVersion.Version2016)
End Sub
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
Excel におけるコメントは、セルに追加できるテキストブロックであり、主にセルの内容に関する追加の説明や補足情報を提供するために使用されます。ユーザーは特定のセルにコメントを追加し、ワークシートのデータをより詳しく説明することができます。しかし、時にはコメントが多すぎて視覚的な混雑を引き起こしたり、他のコンテンツを妨げることがあります。この問題を回避するために、既存のコメントをプログラムで非表示にすることができ、ワークシートを整理して読みやすくすることができます。必要な場合には、非表示にされたコメントを簡単に表示することもできます。この記事では、Spire.XLS for .NET を使用して、C# および VB.NET で Excel のコメントを表示または非表示にする方法を紹介します。
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLSSpire.XLS for .NET は、Worksheet.Comments[].IsVisble プロパティを提供して、コメントの表示/非表示を制御します。このプロパティを 「false」に設定することで、既存のコメントを簡単に非表示にすることができます。以下は、Excel でコメントを非表示にするための詳細な手順です。
using Spire.Xls;
namespace ShowExcelComments
{
class Program
{
static void Main(string[] args)
{
{
//Workbookインスタンスを初期化し、サンプルファイルを読み込む
Workbook workbook = new Workbook();
workbook.LoadFromFile("Comments.xlsx");
//最初のワークシートを取得する
Worksheet sheet = workbook.Worksheets[0];
//ワークシート内の特定のコメントを非表示にする
sheet.Comments[0].IsVisible = false;
//結果ファイルを保存する
workbook.SaveToFile("HideComment.xlsx", ExcelVersion.Version2013);
workbook.Dispose();
}
}
}
}Imports Spire.Xls
Namespace ShowExcelComments
Class Program
Private Shared Sub Main(ByVal args() As String)
'Workbookインスタンスを初期化し、サンプルファイルを読み込む
Dim workbook As Workbook = New Workbook
workbook.LoadFromFile("Comments.xlsx")
'最初のワークシートを取得する
Dim sheet As Worksheet = workbook.Worksheets(0)
'ワークシート内の特定のコメントを非表示にする
sheet.Comments(0).IsVisible = false
'結果ファイルを保存する
workbook.SaveToFile("HideComment.xlsx", ExcelVersion.Version2013)
workbook.Dispose
End Sub
End Class
End Namespace
必要な場合には、非表示にされたコメントを簡単に表示することもできます。再び表示したい場合は、Worksheet.Comments[].IsVisble プロパティを「true」に設定してください。以下は、Excel でコメントを表示する手順です。
using Spire.Xls;
namespace ShowExcelComments
{
class Program
{
static void Main(string[] args)
{
{
//Workbookインスタンスを初期化し、サンプルファイルを読み込む
Workbook workbook = new Workbook();
workbook.LoadFromFile("HideComment.xlsx");
//最初のワークシートを取得する
Worksheet sheet = workbook.Worksheets[0];
//特定のコメントを表示する
sheet.Comments[0].IsVisible = true;
//結果ファイルを保存する
workbook.SaveToFile("ShowComment.xlsx", ExcelVersion.Version2013);
workbook.Dispose();
}
}
}
}Imports Spire.Xls
Namespace ShowExcelComments
Class Program
Private Shared Sub Main(ByVal args() As String)
'Workbookインスタンスを初期化し、サンプルファイルを読み込む
Dim workbook As Workbook = New Workbook
workbook.LoadFromFile("HideComment.xlsx")
'最初のワークシートを取得する
Dim sheet As Worksheet = workbook.Worksheets(0)
'特定のコメントを表示する
sheet.Comments(0).IsVisible = true
'結果ファイルを保存する
workbook.SaveToFile("ShowComment.xlsx", ExcelVersion.Version2013)
workbook.Dispose
End Sub
End Class
End Namespace
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。