1. 製品
  2.   スプレッドシート
  3.   C++
  4.   Libxlsxwriter
 
  

Excel スプレッドシート用のオープン ソース C ライブラリ

Microsoft Excel 2007 および XLSX スプレッドシート ファイルの作成、編集、操作、および変換、スプレッドシートの結合、オープン ソース C API を介したワークシートへのグラフの追加。

Libxlsxwriter は、独自のアプリケーション内で Microsoft Excel 2007 および Excel XLSX ファイルを操作するために使用できるオープン ソースの C ライブラリです。 Libxlsxwriter ライブラリは Excel XLSX ファイルとの互換性が高く、開発者は XLSX スプレッドシートを簡単に作成、変更、および処理できます。このライブラリは、Linux、FreeBSD、OpenBSD、OS X、iOS、Windows などの主要なプラットフォームでスムーズに動作します。 32 ビットと 64 ビット用にコンパイルできます。

オープン ソースの Libxlsxwriter ライブラリは適切に最適化されており、大きなスプレッドシート ファイルを適切に処理できます。スプレッドシート セルの結合、名前の定義、オートフィルターのサポート、ワークシート ページへのグラフの追加、データ検証、ドロップダウン リスト、PNG/JPEG 画像の追加、セル コメントの追加、VBA マクロの操作など、いくつかの重要な機能のサポートが含まれています。 、シートからの列の追加または削除など。

Previous Next

Libxlsxwriter を使い始める

Libxlsxwriter は、ライブラリのビルドとインストールで CMake をサポートしています。次のコマンドを使用してください。

CRAN経由でlibxlsxwriterをインストール

 cmake $SOURCE_DIR $FLAGS 

GitHub から libxlsxwriter ソース コード リポジトリを複製します。次のコードを使用してください。

GitHub 経由で libxlsxwriter をインストールします

it clone https://github.com/jmcnamara/libxlsxwriter.git
# Or use your preferred protocol instead of https 

Excel XLSX スプレッドシートを作成する C API

オープン ソースの Libxlsxwriter API を使用すると、ソフトウェア開発者は C アプリケーション内で Excel XLSX スプレッドシートを作成および変更できます。 API は、Excel スプレッドシート ファイル内の複数のワークシートへのテキスト、数値、数式、およびハイパーリンクの書き込みをサポートします。 Excel ファイルからデータを簡単にインポートまたはエクスポートしたり、シートを結合または分割したり、データを検索したりできます。

C API で Excel スプレッドシートを作成する<

#include "xlsxwriter.h"
int main() {
    /* Create a new workbook and add a worksheet. */
    lxw_workbook  *workbook  = workbook_new("demo.xlsx");
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
    /* Add a format. */
    lxw_format *format = workbook_add_format(workbook);
    /* Set the bold property for the format */
    format_set_bold(format);
    /* Change the column width for clarity. */
    worksheet_set_column(worksheet, 0, 0, 20, NULL);
    /* Write some simple text. */
    worksheet_write_string(worksheet, 0, 0, "Hello", NULL);
    /* Text with formatting. */
    worksheet_write_string(worksheet, 1, 0, "World", format);
    /* Write some numbers. */
    worksheet_write_number(worksheet, 2, 0, 123,     NULL);
    worksheet_write_number(worksheet, 3, 0, 123.456, NULL);
    /* Insert an image. */
    worksheet_insert_image(worksheet, 1, 2, "logo.png");
    workbook_close(workbook);
    return 0;
}

Excel チャートの操作

Libxlsxwriter API は、C コマンドを使用して Excel スプレッドシートにチャートを追加および変更する機能を提供します。チャート マーカー関数を使用して、チャートを生成および管理できます。傾向線を追加してデータの傾向を示し、エラー バーを追加してデータの誤差範囲を示すこともできます。チャート シリーズにデータ ラベルを付けて、プロットされたデータ ポイントの値を示すこともできます。グラフの書式設定プロパティを任意のグラフ オブジェクトに簡単に適用できます。

Libxlsxwriter を使って Excel ワークシートでチャートを作成する

#include "xlsxwriter.h"
int main() {
    lxw_workbook  *workbook  = new_workbook("chart.xlsx");
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
    // User function to add data to worksheet, not shown here.
    write_worksheet_data(worksheet);
    // Create a chart object.
    lxw_chart *chart = workbook_add_chart(workbook, LXW_CHART_COLUMN);
    // In the simplest case we just add some value data series.
    // The NULL categories will default to 1 to 5 like in Excel.
    chart_add_series(chart, NULL, "=Sheet1!$A$1:$A$5");
    chart_add_series(chart, NULL, "=Sheet1!$B$1:$B$5");
    chart_add_series(chart, NULL, "=Sheet1!$C$1:$C$5");
    // Insert the chart into the worksheet
    worksheet_insert_chart(worksheet, CELL("B7"), chart);
    return workbook_close(workbook);
}

Excel データ検証の操作

データ検証は、ユーザーが Excel セルに入力する内容を開発者が制御できるようにする Excel の機能です。たとえば、ユーザーが 1 ~ 6 の数字を入力するように制限したり、セル内のテキスト エントリが 25 文字未満であることを確認したりできます。 Libxlsxwriter API は、任意の値、整数、10 進数、リスト、日付、時刻、テキストの長さ、またはカスタム数式など、ユーザー入力を検証するための多数のオプションを提供します。

表示はカスタマイズします 整数が b/t 1 と 100 でないときのメッセージ

// Display a custom info message when integer isn't between 1 and 100.
data_validation->validate         = LXW_VALIDATION_TYPE_INTEGER;
data_validation->criteria         = LXW_VALIDATION_CRITERIA_BETWEEN;
data_validation->minimum_number   = 1;
data_validation->maximum_number   = 100;
data_validation->input_title      = "Enter an integer:";
data_validation->input_message    = "between 1 and 100";
data_validation->error_title      = "Input value is not valid!";
data_validation->error_message    = "It should be an integer between 1 and 100";

VBA マクロの操作

Libxlsxwriter API を使用すると、ソフトウェア開発者は関数やマクロを含む VBA ファイルを XLSX ワークブックに簡単に追加できます。関数とマクロを含む Excel ファイルは XLSM 拡張子を使用する必要があります。そうしないと、Excel でエラーが発生し、ファイルが開かない可能性があります。通常、VBA マクロはワークブックとワークシート オブジェクトを参照します。 VBA コードネームが明示的に指定されていない場合、libxlsxwriter は Excel の既定値である ThisWorkbook と Sheet1、Sheet2 などを使用します。

Cアプリ内のExcel CookbookにBA Marcosを追加

 
#include "xlsxwriter.h"
int main() {
    /* Note the xlsm extension of the filename */
    lxw_workbook  *workbook  = workbook_new("macro.xlsm");
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
    worksheet_set_column(worksheet, COLS("A:A"), 30, NULL);
    /* Add a macro file extracted from an Excel workbook. */
    workbook_add_vba_project(workbook, "vbaProject.bin");
    worksheet_write_string(worksheet, 2, 0, "Press the button to say hello.", NULL);
    lxw_button_options options = {.caption = "Press Me", .macro = "say_hello",
                                  .width = 80, .height = 30};
     worksheet_insert_button(worksheet, 2, 1, &options);
    return workbook_close(workbook);
}
 日本