1. 製品
  2.   スプレッドシート
  3.   .NET
  4.   ExcelDataReader
 
  

Excel スプレッドシートを読み取るためのオープン ソース .NET ライブラリ  

ExcelDataReader を使用すると、C# を使用して Microsoft Excel ファイル形式を読み取ることができます。

ExcelDataReader は、Microsoft Excel ファイルを読み取るために C# で記述されたオープン ソースの軽量 API です。 API を使用すると、Microsoft XLS、XLSX、および CSV を簡単に読み取ることができます。 API は、Excel 2.0 までの古いバージョンの XLS ファイルをサポートし、テキスト日付、キャッシュされた数式値、および XLSX の空のシート パスをサポートします。

さらに、API は XLS でのフォールバック エンコーディングと、データセットでのより柔軟な列名の処理をサポートしています。構成は簡単で、NuGet で利用できます。

Previous Next

ExcelDataReader の概要

ExcelDataReader をインストールする推奨される方法は、NuGet からです。インストールを高速化するには、次のコマンドを使用してください。

NuGet から ExcelDataReader をインストールする

 Install-Package ExcelDataReader -Version 3.6.0

.NET API 経由で Excel ファイルを読み取る

ExcelDataReader を使用すると、C# .NET 開発者は Microsoft Excel ファイルを簡単かつ効率的に読み取ることができます。 AsDataSet() 拡張メソッドは、データをすばやく取得するための便利なヘルパーです。 IExcelDataReader は、System.Data.IDataReader および IDataRecord インターフェイスを拡張して、下位レベルでデータをナビゲートおよび取得します。

C# .NET による Excel ファイルのヘッダとフッターの読み込み

sing System;
using System.Text;
namespace ExcelDataReader.Core.BinaryFormat
{
    /// 
    /// Represents a string value of a header or footer.
    /// 
    internal sealed class XlsBiffHeaderFooterString : XlsBiffRecord
    {
        private readonly IXlsString _xlsString;
        internal XlsBiffHeaderFooterString(byte[] bytes, uint offset, int biffVersion)
            : base(bytes, offset)
        {
            if (biffVersion < 8)
                _xlsString = new XlsShortByteString(bytes, offset + 4);
            else if (biffVersion == 8)
                _xlsString = new XlsUnicodeString(bytes, offset + 4);
            else
                throw new ArgumentException("Unexpected BIFF version " + biffVersion, nameof(biffVersion));
        }
        /// 
        /// Gets the string value.
        /// 
        public string GetValue(Encoding encoding)
        {
            return _xlsString.GetValue(encoding);
        }
    }
}

.NET APIを介して保護されたクックブックを読む

オープン ソースの .NET API ExcelDataReader を使用すると、パスワードで保護された Microsoft Excel ドキュメントを読み取ることもできます。パスワードで保護されたファイルは、ExcelReaderConfiguration 構成のパスワード設定を使用して読み取り、CreateOpenXmlReader() メソッドを使用して開くことができます。

C# APIを介してスプレッドシートセルにフォーマットを適用する方法

// Use the following code to Access your protected Spreadsheet file 
var conf = new ExcelReaderConfiguration { Password = "yourPassword" };
excelReader = ExcelReaderFactory.CreateOpenXmlReader(excelStream, conf);

C#を使用してExcelスプレッドシートセルにフォーマットを適用

オープンソースのExcelDataReaderライブラリは、ソフトウェアプログラマは、C#コードのほんの数行でExcelセルのフォーマットを適用することができます。 ExcelDataReaderは、直接フォーマット機能をサポートしていません。 フォーマット文字列を含むセルの数を取得し、サードパーティのExcelNumberFormatライブラリを使用して、フォーマットの目的を取得する必要があります。 以下の例では、達成方法を理解するのに役立ちます。

C# APIを介してスプレッドシートセルにフォーマットを適用する方法

string GetFormattedValue(IExcelDataReader reader, int columnIndex, CultureInfo culture)
{
    var value = reader.GetValue(columnIndex);
    var formatString = reader.GetNumberFormatString(columnIndex);
    if (formatString != null)
    {
        var format = new NumberFormat(formatString);
        return format.Format(value, culture);
    }
    return Convert.ToString(value, culture);
}
 日本