Excel XLS ファイルを読み取るオープンソース C ライブラリ
Microsoft Excel を必要とせずに、Excel XLS ファイルのロード、読み取り、データ抽出を行う軽量で高速なオープンソース無料 C ライブラリです。
libxlsとは何ですか?
Microsoft Excelファイルの取り扱いは、多くのソフトウェアアプリケーションで一般的な要件です。最新のスプレッドシートはXLSX形式を使用していますが、依然として多数の組織がレガシーなXLSファイルに依存しています。これらのファイルからデータを読み取り抽出することは、バイナリのXLS形式が独自仕様で複雑なため、困難です。libxlsは、この作業を簡素化するために特別に設計されたオープンソースのCライブラリです。Microsoft Excelや外部のOfficeコンポーネントを必要とせず、Excel 97–2003 XLSファイルを高速かつ軽量に読み取るソリューションを提供します。
libxls は、開発者が Microsoft Excel の XLS スプレッドシートから情報を読み取り抽出できるポータブルな C ライブラリです。Excel 97–2003(.xls)ファイル、複数のワークシート、セルの値と書式情報、Unicode テキスト、日付や数値の抽出、クロスプラットフォーム開発などをサポートします。オフィス自動化アプローチとは異なり、libxls は Microsoft Office に依存せずに動作するため、Linux、macOS、Windows、組み込み環境に適しています。そのシンプルさ、ポータビリティ、パフォーマンスから、データ移行ツール、スプレッドシートコンバータ、レポーティングアプリケーション、クロスプラットフォームソフトウェアプロジェクトで広く利用されています。
libxlsのはじめ方
libxls はライブラリのビルドとインストールに CMake をサポートしています。以下のコマンドを使用してください。
CRAN経由でlibxlsをインストール
mkdir build
cd build
cmake ..
make
GitHub から libxls のソースコードリポジトリをクローンしてください。以下のコードを使用してください。
GitHub経由でlibxlsをインストール
git clone https://github.com/libxls/libxls.git
# Or use your preferred protocol instead of https Cライブラリを使用したレガシーExcel XLSファイルの読み取り
libxls の最大の強みの一つは、Excel 97–2003 バイナリ XLS ファイルを解析できることです。ライブラリはこれらのスプレッドシートの内部構造を理解し、Microsoft Excel を必要とせずにアプリケーションが行、列、セルの値にアクセスできるようにします。この機能は、まだ XLS 形式で歴史的データをアーカイブしている組織に特に有用です。開発者はインポートツールを簡単に構築し、古い文書との互換性を保ちつつデータ抽出プロセスを自動化できます。以下の例は UTF-8 エンコーディングを使用して Excel XLS ワークブックを開きます。ワークブックがロードされたら、開発者はワークシートにアクセスし、スプレッドシートデータを抽出できます。
Cライブラリを使用してExcel XLSファイルを読み取る方法
#include
int main()
{
xlsWorkBook *workbook;
workbook = xls_open("sample.xls", "UTF-8");
if(workbook)
{
printf("Workbook opened successfully\n");
xls_close_WB(workbook);
}
return 0;
}
Cライブラリを使用して複数のワークシートにアクセスする
多くの Excel ファイルには、情報を異なるセクションに整理する複数のワークシートが含まれています。libxls は各ワークシートを個別にナビゲートし読み取るための API を提供します。この機能は、財務報告書、請求書、在庫表、または科学データセットを処理する際に便利です。開発者はすべてのシートをループして、ユーザーの介入なしに自動的に情報を抽出できます。以下のコードはワークブックを開き、ファイル内で利用可能なワークシートの総数を取得します。
CでXLSファイルのワークシート総数を取得する方法?
#include
int main()
{
xlsWorkBook *wb = xls_open("report.xls", "UTF-8");
if(wb)
{
printf("Number of sheets: %d\n", wb->sheets.count);
xls_close_WB(wb);
}
return 0;
}
Cライブラリを使用したセル値の読み取り
オープンソースの libxls は、アプリケーションが個々のセルにアクセスし、その内容を取得できるようにします。スプレッドシートにテキスト、数値、日付のいずれが含まれていても、ライブラリはセル情報へのシンプルなアクセスを提供します。この機能により、libxls はスプレッドシートデータをデータベースにインポートしたり、レポートを生成したり、Excel ドキュメントを CSV や JSON 形式に変換したりするのに適しています。以下のコード例は、ワークシートの最初のセルを読み取り、その値をコンソールに出力します。
Cライブラリを使用してワークシートのセルにアクセスし、その値を出力する方法?
#include
int main()
{
xlsWorkBook *wb = xls_open("sample.xls", "UTF-8");
if(wb)
{
xlsWorkSheet *sheet = xls_getWorkSheet(wb, 0);
xls_parseWorkSheet(sheet);
xlsCell *cell = xls_cell(sheet, 0, 0);
if(cell)
printf("Cell value: %s\n", cell->str);
xls_close_WS(sheet);
xls_close_WB(wb);
}
return 0;
}
Unicodeおよび文字エンコーディングのサポート
最新のアプリケーションは多言語スプレッドシートを扱うことが多くなっています。libxls は構成可能な文字エンコーディングを通じて Unicode テキストをサポートし、国際的な言語や特殊文字を含むファイルの処理を可能にします。この機能は、顧客名、住所、レポートなどをさまざまな言語で扱うビジネスアプリケーションに特に有用です。UTF-8 エンコーディングを指定することで、ライブラリは以下のコード例に示すように、Excel ファイル内に保存された Unicode テキストを正しく解釈します。
CでExcelファイル内に保存されたUnicodeテキストを解釈する方法?
xlsWorkBook *wb = xls_open("employees.xls", "UTF-8");
if(wb)
{
printf("Workbook loaded using UTF-8 encoding\n");
}