Excel

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

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

はじめに

無料で使えてエクセルも不要、「読み込み」「書き込み」「操作」ができるエクセルライブラリ「SpreadSheetLightを紹介します。

今までC#でExcelを扱うには、「Microsoft.Office.Interop.Excel」「ClosedXML」「NPOI」などが有名でしたが、どれも、エクセルが必要だったり、グラフ挿入ができなかったりと、一長一短な感じでした。

そんな中、そのすべてを解決してくれるのが「SpreadsheetLight」です。

エクセルとLibreOfficeの、「入力/出力」「操作(グラフや罫線、計算式など)」ができて、エクセルのインストールも不要。無料でMITライセンスなので、商用でも使いやすいライブラリです。

※詳細な使い方は記事末のリンクをご覧ください。

SpreadsheetLightの概要

2020年11月に公開された新しいライブラリです。xlsx形式のみ対応なので、ClosedXMLと似ていますが、ClosedXMLが対応していない、「グラフ挿入」ができる点がポイントです。

  • Excel2007 ~ の「xlsx形式」・ LibreOffice calc に対応
  • 読み込み・書き込み・操作が可能 (グラフの挿入)ができる
  • サンプル・チュートリアルが豊富
  • 高速(5400万セルを6分強で作成)
  • NuGetでのダウンロード数 101万回

「xls」はサポート外ですが、「xlsx」に変換すれば使用できます。

こんなことに使える
  • 自動でエクセルデータを集計する
  • CSVをグラフ付エクセルに自動変換する
  • NetOfficeなど遅いライブラリと入れ替えて高速化をする

ライセンス・人気度

ライセンスMIT
.NET バージョン.NET Standard 2.0
NuGetダウンロード数     1.1M
GitHub Star数  --- ※GitHubページは存在しません
公開日2020年11月14日     

※ DL数は2022年4月現在の値です。

公式ページ

公式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」をご紹介しました。
「エクセルの読み・書き・操作をしたい」という方にはぴったりなライブラリだと思います。参考になればうれしいです。

Lenovo Web広告限定ストア

そろそろ、Macに負けない機能的なデザイン、フルカスタマイズしたPCが欲しい!とい方には「ThinkPad」や「IdeaPad」がおすすめです。Lenovo製品は、購入場所やクーポンで大きく値段が変わります。普通に買ってしまうともったいないので、以下のリンクの割引価格やクーポン情報を使ってください。

特別割引や限定クーポンを見る

効率的にエクセルを使う方法

Excelで大量のデータを扱うなら、高解像度のディスプレイが絶対おすすめです。WQHD対応モニターなら、同サイズのフルHDと比べて1.8倍の情報量。表示のストレスも劇的に減って、仕事のモチベが上がります。さらに今なら30%オフのセール中です。

SpreadsheetLightの詳しい使い方

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

応援・要望お待ちしてます

ブログを見ていて「この辺を詳しく知りたい」「このライブラリの使い方を知りたい」「こんなことで困ってる」...etc があれば、コメント・問い合わせ・Twitterで教えてください。質問・ご要望に合わせて解説記事を作ります。

ブログを気に入っていただけたり、「応援してもいいよ」という方がいたら、ブログやSNSでの紹介をお願いします。 あたたかい応援は、中の人の更新の大きな励みになります。

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

COMMENT

メールアドレスが公開されることはありません。