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 で利用できます。
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);
}