C#

【C#】無料で使えるExcelライブラリ ExcelDataReader

はじめに

C#で無料で使えるエクセルライブラリ「ExcelDataReader」をご紹介します。
細かい処理はライブラリにお任せにできるので、エクセルを読み込みたい時は便利に使えると思います。

ExcelDataReaderにエクセルファイルの出力機能はありません。
「読み込み」のみ行うことができます。

読み込み・書き込み、両方したい方は「Spreadsheet Light」をおすすめします。

ExcelDataReaderの概要

2019年に公開されたやや新しいライブラリです。「軽量で高速なExcelライブラリ」と公式サイトにうたわれています。

Excelファイルはもちろんのこと、xlsx形式で出力したLibroOfficeのファイルも読み込むことができます。
旧形式のエクセルファイル(.xls)、新形式ののエクセルファイル(xlsx)の両方に対応しています。

更新については、最終リリースが2019年5月と活発ではないようですが、NuGetのダウンロード数も多く人気のライブラリです。

  • 2019年公開「軽量・高速なエクセルライブラリ」
  • LibroOffice・xls・xlsxに対応
  • 最終版の更新は2019年5月
こんなことに使える

エクセルの読み込みが簡単に行えるので、以下の用途に使えます。

  • エクセルデータ集計を自動化する
  • エクセルデータを読み込んで、DBに保存する
  • エクセルデータを読み込んで、アプリで解析・グラフ描画する

ライセンス・人気度

ライセンスMIT   
.NET バージョン2.0~ ※
NuGetダウンロード数22.2M
GitHub Star数3.1k
最終更新日2019年5月2日     

※.NET 1.5で使う場合は、内部で使用しているライブラリとの依存関係に注意が必要です。

※ 数字は2022年7月現在時点のものです。

公式ページ

以下のGitHubのプロジェクトページが公式となっています。

https://github.com/ExcelDataReader/ExcelDataReader

サンプルコード

公式ページに掲載されているサンプルコードを紹介します(コメントは日本語に意訳)
エクセルファイルを読み込むサンプルですが、テキストファイルを扱うような感覚でExcelファイルを扱うことができます。

サンプルでは、以下2つの読み取り方法が掲載されています。

  1. readerを使う方法

    ReadLine() のように、エクセルを1行読み取り、各セルにアクセスします。
  2. データオプションを使う方法

    AsDataSetを使って、データテーブル配列で各セルにアクセスします。
using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
{
    // Auto-detect format, supports:
    //  - バイナリ形式のエクセルファイル (2.0-2003 format; *.xls)
    //  - OpenXml形式のエクセルファイル(2007 format; *.xlsx, *.xlsb)
    using (var reader = ExcelReaderFactory.CreateReader(stream))
    {
        // 1,2 いずれかを選択します。

        // 1. reader を使用する方法です
        do
        {
            while (reader.Read())
            {
                // エクセルの行(横一列)の各セルをDoubleとして取得します。
                // reader.GetDouble(0);
            }
        } while (reader.NextResult());

        // 2. AsDataSet のエクステンションを使う方法です。
        // AsDataSetを使うためにはNuGetで「ExcelDataReader.DataSet」をインストールする必要があります。
        var result = reader.AsDataSet();

        // 各スプレッドシートの結果(内容)は、result.dataTablesに格納されています。
    }
}

まとめ

C#で無料で使えるエクセルライブラリ「ExcelDataReader」をご紹介しました。
書き込みができないのが本当に残念ですが、エクセルから読み込んだ後はWeb等のDBで保存したり、PythonやC#で高度な解析するといった使い方もいいんじゃないでしょうか。

※ 2021/05/28
エクセルの読み込み / 書き込み / 操作 がすべて出来る無料MITライセンスのライブラリ「SpreadsheetLight」をみつけました。

書き込みや、操作(罫線・グラフの操作など)までできる優れものなので、ExcelDataReaderの代わりに以下のライブラリの使用も検討してみてください。

【C# エクセル 】無料でExcelの出力・読み込み・操作がすべて可能な新しいライブラリ「SpreadsheetLight」のアイキャッチ
【C# エクセル 】無料でExcelの出力・読み込み・操作がすべて可能な新しいライブラリ「SpreadsheetLight」 はじめに 無料で使えてエクセルも不要、「読み込み」「書き込み」「操作」ができるエクセルライブラリ「SpreadSheetLigh...

UdemyでC#のスキルを上げる

C#のスキルを上げるには、Udemyの動画講座がおすすめです。「C#で読みやすいコードを書く50の方法」「保守性の高いコードの書き方」など、脱初心者/スキルアップのための講座が公開されています。

1講座 2440円程度で公開されており、返金保証あり。視聴期限もないので自分のペースで仕事のスピードや評価のUPのための力をつけことができます。

書籍を買うのもいいですが、同額の値段で「動画講座」でもスキルを磨いてみてください。きっと費用対効果の高い自己投資になります。

以下のリンクはC#講座の一覧です。

⇒ C#の講座一覧をみる

自分でコードを打つ時間がない時は

『自分でやるには時間がない、でも頼める人もいない』と悩んでいるあなたに「ココナラ」があります。

登録者数は約200万。専門家・フリーランスも多く、制作サンプルやレビューを見て自分にあった人を選ぶことができます。特に人気の「Python」なら絶対数が多いので「デキる人」も見つけやすいです。登録は無料なのでどんな人・チームがいるか確認してみてください。

(HP製作・動画製作・面倒な業務文書の作成代行も依頼もできますよ)

1分以内に完了!無料会員登録はこちら

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

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

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

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

COMMENT

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