Microsoft Office をインストールせずに C# で Excel (.XLS および .XLSX) ファイルを作成するにはどうすればよいでしょうか? 質問する

Microsoft Office をインストールせずに C# で Excel (.XLS および .XLSX) ファイルを作成するにはどうすればよいでしょうか? 質問する

コードを実行するマシンに Excel をインストールせずに、C# で Excel スプレッドシートを作成するにはどうすればよいですか?

ベストアンサー1

ExcelLibrary というライブラリを使用できます。これは、Google Code に投稿された無料のオープンソース ライブラリです。

Excelライブラリ

これは、上で言及した PHP ExcelWriter の移植版のようです。まだ新しい .xlsx 形式には書き込めませんが、その機能を追加する作業が進められています。

非常にシンプルで、小さく、使いやすいです。さらに、DataSet と DataTables を使用して Excel データを簡単に操作できる DataSetHelper も備えています。

ExcelLibrary はまだ古い Excel 形式 (.xls ファイル) でのみ機能するようです。ただし、将来的には新しい 2007/2010 形式のサポートが追加される可能性があります。

使用することもできますEPプラスこれはExcel 2007/2010形式のファイル(.xlsxファイル)にのみ機能します。NPOIどちらでも機能します。

コメントに記載されているように、各ライブラリにはいくつかの既知のバグがあります。全体として、時間の経過とともに EPPlus が最良の選択であるように思われます。より積極的に更新され、ドキュメント化もされているようです。

また、@АртёмЦарионовが以下で指摘しているように、EPPlusはピボットテーブルをサポートしており、ExcelLibraryもある程度サポートしている可能性があります(ExcelLibrary のピボット テーブルの問題

簡単に参照できるリンクをいくつか示します。
Excelライブラリ-GNU 劣等 GPL
EPプラス-GNU (LGPL) - メンテナンス終了
EPプラス5-Polyform 非営利 - 2020 年 5 月開始
NPOI-Apacheライセンス

ExcelLibrary のサンプルコードを以下に示します。

以下は、データベースからデータを取得し、そこからワークブックを作成する例です。ExcelLibrary コードは下部の 1 行であることに注意してください。

//Create the data set and table
DataSet ds = new DataSet("New_DataSet");
DataTable dt = new DataTable("New_DataTable");

//Set the locale for each
ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
dt.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;

//Open a DB connection (in this example with OleDB)
OleDbConnection con = new OleDbConnection(dbConnectionString);
con.Open();

//Create a query and fill the data table with the data from the DB
string sql = "SELECT Whatever FROM MyDBTable;";
OleDbCommand cmd = new OleDbCommand(sql, con);
OleDbDataAdapter adptr = new OleDbDataAdapter();

adptr.SelectCommand = cmd;
adptr.Fill(dt);
con.Close();

//Add the table to the data set
ds.Tables.Add(dt);

//Here's the easy part. Create the Excel worksheet from the data set
ExcelLibrary.DataSetHelper.CreateWorkbook("MyExcelFile.xls", ds);

Excel ファイルの作成は、このように簡単です。Excel ファイルを手動で作成することもできますが、上記の機能には本当に感心しました。

おすすめ記事