C# PR

【C# エクセル 】無料でExcelの出力・読み込み・操作がすべて可能な新しいライブラリ「SpreadsheetLight」

【C# エクセル 】無料でExcelの出力・読み込み・操作がすべて可能な新しいライブラリ「SpreadsheetLight」のアイキャッチ
記事内に商品プロモーションを含む場合があります

はじめに

無料で使えてエクセルも不要、「読み込み」「書き込み」「操作」ができるエクセルライブラリ「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など遅いライブラリと入れ替えて高速化をする
楽天ブックス
¥2,139 (2023/02/03 06:42時点 | 楽天市場調べ)
\楽天ポイント4倍セール!/
楽天市場

ライセンス・人気度

ライセンス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で開いた画像

※ LibreOffice Calc で開いた際の画像です。

まとめ

無料のエクセルライブラリSpreadsheetLight」をご紹介しました。
「エクセルの読み・書き・操作をしたい」という方にはぴったりなライブラリだと思います。参考になればうれしいです。

お知らせ

今月号のSoftware Designは「もっとTypeScriptの力を引き出そう」

JavaScriptの拡張言語でしょ?と思っているかたへ、Union型などTypeScriptの持つ秘めたる力を解説する特集となっています。

個人的には第2特集の「Ubuntuの現代的な使い方」がの方が気になりました。より詳しい内容は以下のリンクからご覧ください。

編集:Software Design 編集部
¥1,562 (2024/04/27 07:44時点 | Amazon調べ)
\楽天ポイント4倍セール!/
楽天市場

SpreadsheetLightの詳しい使い方

以下の記事で、SpreadsheetLightの詳しい使い方を解説しています。合わせてご覧ください。

質問・要望 大歓迎です

「こんな解説記事作って」「こんなことがしたいけど、〇〇で困ってる」など、コメント欄で教えてください。 質問・要望に、中の人ができる限り対応します。

使えたよ・設定できたよの一言コメントも大歓迎。気軽に足跡を残してみてください。記事を紹介したい方はブログ、SNSにバシバシ貼ってもらってOKです。

ABOUT ME
えす
現役のソフトウェアエンジニアです。 C++ C# Python を使ってます。10年ちょい設計/開発部門にいましたが、今はQAエンジニアっぽいことをしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です