はじめに
無料で使えてエクセルも不要、「読み込み」「書き込み」「操作」ができるエクセルライブラリ「SpreadSheetLight」を紹介します。
今までC#でExcelを扱うには、「Microsoft.Office.Interop.Excel」「ClosedXML」「NPOI」などが有名でしたが、どれも、エクセルが必要だったり、グラフ挿入ができなかったりと、一長一短な感じでした。
そんな中、そのすべてを解決してくれるのが「SpreadsheetLight」です。
エクセルとLibreOfficeの、「入力/出力」「操作(グラフや罫線、計算式など)」ができて、エクセルのインストールも不要。無料でMITライセンスなので、商用でも使いやすいライブラリです。
※詳細な使い方は記事末のリンクをご覧ください。
SpreadsheetLightの概要
2020年11月に公開された新しいライブラリです。xlsx形式のみ対応なので、ClosedXMLと似ていますが、ClosedXMLが対応していない、「グラフ挿入」ができる点がポイントです。
- 「xlsx形式」「LibreOffice calc」 に対応
- 「読み込み」「書き込み」「グラフの挿入などのエクセル操作」ができる
- サンプル・チュートリアルが豊富
- 高速(5400万セルを6分強で作成)
- NuGetでのダウンロード数 130万回
※「xls」はサポート外ですが、「xlsx」に変換すれば使用できます。
- 自動でエクセルデータを集計する
- CSVをグラフ付エクセルに自動変換する
- NetOfficeなど遅いライブラリと入れ替えて高速化をする
ライセンス・人気度
ライセンス | MIT |
.NET バージョン | .NET Standard 2.0 |
NuGetダウンロード数 | 1.3M |
GitHub Star数 | — ※GitHubページは存在しません |
公開日 | 2020年11月14日 |
※ DL数は2022年8月現在の値です。
公式ページ
公式HPは以下です。商用ソフトのページのような外観ですが、FAQに無料と記載があります。オープンソースですが、ソースコードは公式HPからZIPをダウンロードする形式です。
公式HP: http://spreadsheetlight.com/
サンプルコード
内容
「文字列」「数値」「数式」などをエクセルに入力して保存するコードです。公式ページのサンプルをベースにしています。
サンプルコード
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// SpreadSheetLight関連に使用します
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Spreadsheet;
using SpreadsheetLight;
namespace SpreadsheetLightTest
{
class Program
{
static void Main(string[] args)
{
SLDocument sl = new SLDocument();
// B3セルに 文字列をセットします
sl.SetCellValue("B1", "SpreadsheetLightのテストです");
// B4に数字を"文字列"としてセットします
sl.SetCellValue("B2", "12345");
// B5に数字を"数値"としてセットします
sl.SetCellValueNumeric("B3", "3");
sl.SetCellValueNumeric("B4", "7");
// セルを座標指定して、文字列をセットします(B6)
sl.SetCellValue(5,2,"座標指定です");
// 数式をセットします
sl.SetCellValue("B6","=SUM(B4:B5)");
// ファイル名を指定して保存します。
sl.SaveAs("OutputData.xlsx");
// 終了待ちです。
Console.WriteLine("何かキーを押すと終了します >> ");
Console.ReadLine();
}
}
}
実行結果
以下のエクセルファイル(xlsx)ファイルが生成されます。
※ LibreOffice Calc で開いた際の画像です。
まとめ
無料のエクセルライブラリ「SpreadsheetLight」をご紹介しました。
「エクセルの読み・書き・操作をしたい」という方にはぴったりなライブラリだと思います。参考になればうれしいです。
お知らせ
今月号のSoftware Designは「もっとTypeScriptの力を引き出そう」
JavaScriptの拡張言語でしょ?と思っているかたへ、Union型などTypeScriptの持つ秘めたる力を解説する特集となっています。
個人的には第2特集の「Ubuntuの現代的な使い方」がの方が気になりました。より詳しい内容は以下のリンクからご覧ください。
SpreadsheetLightの詳しい使い方
以下の記事で、SpreadsheetLightの詳しい使い方を解説しています。合わせてご覧ください。
質問・要望 大歓迎です
「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。
使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。