ホームページ >バックエンド開発 >Golang >Golang が Excel ドキュメントを生成する方法を詳しく説明した記事

Golang が Excel ドキュメントを生成する方法を詳しく説明した記事

藏色散人
藏色散人転載
2023-03-23 17:01:373425ブラウズ

この記事では、Golang に関する関連知識を紹介します。主に Golang を使用して Excel ドキュメントを生成する方法を紹介します。興味のある友人は以下を参照してください。すべての人に役立つことを願っています。

Golang が Excel ドキュメントを生成する方法を詳しく説明した記事

データに基づいて Excel ドキュメントを生成することは、非常に一般的な要件です。この記事では、Go の Excelize ライブラリを使用して Excel ドキュメントを生成する方法を紹介します一部の特定のシナリオでのコード実装も同様です。

Excelize ライブラリについて

Excelize は、ISO/IEC 29500 国際規格 ECMA-376 に基づいた、Office Excel ドキュメントを操作するための Go 言語で書かれた基本ライブラリです。これを使用して、Microsoft Excel™ 2007 以降で作成されたスプレッドシート ドキュメントの読み取りと書き込みを行うことができます。 XLSX / XLSM / XLTM / データワークブックなどの複数のドキュメント形式をサポートします。さまざまなレポート プラットフォーム、クラウド コンピューティング、エッジ コンピューティング、その他のシステムに適用できます。このライブラリを使用するには、Go 言語バージョン 1.15 以降が必要です。

パフォーマンスの比較

次の図は、12800*50 プレーン テキスト行列を生成する場合のいくつかの主要なオープン ソース Excel ライブラリのパフォーマンスの比較を示しています (OS: macOS Mojave バージョン 10.14.4、CPU: 3.4) GHz Intel Core i5、RAM: 16 GB 2400 MHz DDR4、HDD: 1 TB)、Go、Python、Java、PHP、NodeJS を含む。

#インストール

最新バージョンは

v2.4.0:

go get github.com/360EntSecGroup-Skylar/excelize/v2
Excel ドキュメントの作成

次のケースでは、Excel ドキュメントを作成し、

NewSheet メソッドを使用して新しい Sheet2 ワークシートを作成しました。Sheet1 はデフォルトで作成されるワークシートです。次に、SetCellValue メソッドを使用して、Sheet2 ワークシートの A2 セルと Sheet1 の B2 を設定します。セルの値を設定し、SetActiveSheet メソッドを使用して Sheet2 ワークシートをデフォルトのワークシートとして設定し、最後に SaveAs を呼び出します。データを Excel ドキュメントに書き込む方法: <pre class="brush:php;toolbar:false">package main import (     &quot;fmt&quot;     &quot;github.com/360EntSecGroup-Skylar/excelize/v2&quot; ) func main() {     f := excelize.NewFile()     // 创建一个工作表     index := f.NewSheet(&quot;Sheet2&quot;)     // 设置单元格的值     f.SetCellValue(&quot;Sheet2&quot;, &quot;A2&quot;, &quot;Hello world.&quot;)     f.SetCellValue(&quot;Sheet1&quot;, &quot;B2&quot;, 100)     // 设置工作簿的默认工作表     f.SetActiveSheet(index)     // 根据指定路径保存文件     if err := f.SaveAs(&quot;Book1.xlsx&quot;); err != nil {         fmt.Println(err)     } }</pre>実際のシナリオの再現

ワークシートの作成

ワークシート名は大文字と小文字が区別されます:

index := f.NewSheet("Sheet2")

デフォルトで作成されたワークシートを削除します

デフォルトで作成された Excel ドキュメントには、

Sheet1

という名前のワークシートが含まれています。このデフォルトのワークシートは必要ない可能性があります。現時点では、このワークシートを削除できます。 <pre class="brush:php;toolbar:false">f.DeleteSheet(&quot;Sheet1&quot;)</pre>セルを結合

Merge

Sheet1

ワークシート上の F1:I2 範囲内のセル: <pre class="brush:php;toolbar:false">excel.MergeCell(&quot;Sheet1&quot;, &quot;F1&quot;, &quot;I2&quot;)</pre>セル スタイル

セルの背景色の設定など、セルのスタイルの設定は頻繁に行われます。

Excelize

ライブラリには、セルのスタイルを設定する次の 2 つのメソッド (NewStyle と #) が用意されています。 ## SetCellStyle):

// 通过给定的样式格式 JSON 或结构体的指针创建样式并返回样式索引。
// 请注意,颜色需要使用 RGB 色域代码表示。
style, err := f.NewStyle(`{
    "border": [
    {
        "type": "left",
        "color": "0000FF",
        "style": 3
    },
    {
        "type": "top",
        "color": "00FF00",
        "style": 4
    },
    {
        "type": "bottom",
        "color": "FFFF00",
        "style": 5
    },
    {
        "type": "right",
        "color": "FF0000",
        "style": 6
    },
    {
        "type": "diagonalDown",
        "color": "A020F0",
        "style": 7
    },
    {
        "type": "diagonalUp",
        "color": "A020F0",
        "style": 8
    }]
}`)
if err != nil {
    fmt.Println(err)
}
err = f.SetCellStyle("Sheet1", "D7", "D7", style)
テキストの水平方向の中央揃え テキストの水平方向の中央揃えには、

Alignment

スタイル構造の使用が必要です:

type Alignment struct {
    Horizontal      string `json:"horizontal"`
    Indent          int    `json:"indent"`
    JustifyLastLine bool   `json:"justify_last_line"`
    ReadingOrder    uint64 `json:"reading_order"`
    RelativeIndent  int    `json:"relative_indent"`
    ShrinkToFit     bool   `json:"shrink_to_fit"`
    TextRotation    int    `json:"text_rotation"`
    Vertical        string `json:"vertical"`
    WrapText        bool   `json:"wrap_text"`
}
水平方向のセンタリングのみを設定する必要があります。 水平の値は

center です。

style, err := f.NewStyle(`{"alignment":{"horizontal":"center"}}`)
if err != nil {
    fmt.Println(err)
}
err = excel.SetCellStyle("Sheet1", "B1", "B1", style)
セルに単色の塗りつぶしを設定します。

セルを色で塗りつぶすために使用されます。 Fill

スタイル構造:

type Fill struct {
    Type    string   `json:"type"`
    Pattern int      `json:"pattern"`
    Color   []string `json:"color"`
    Shading int      `json:"shading"`
}
スタイル構造上記のスタイルを設定するコードから、

border## がわかります。 # は配列、

alignment

Style 構造によって決定される構造です: <pre class="brush:php;toolbar:false">type Style struct {     Border        []Border    `json:&quot;border&quot;`     Fill          Fill        `json:&quot;fill&quot;`     Font          *Font       `json:&quot;font&quot;`     Alignment     *Alignment  `json:&quot;alignment&quot;`     Protection    *Protection `json:&quot;protection&quot;`     NumFmt        int         `json:&quot;number_format&quot;`     DecimalPlaces int         `json:&quot;decimal_places&quot;`     CustomNumFmt  *string     `json:&quot;custom_number_format&quot;`     Lang          string      `json:&quot;lang&quot;`     NegRed        bool        `json:&quot;negred&quot;` }</pre> 関連する推奨事項: Go ビデオ チュートリアル

以上がGolang が Excel ドキュメントを生成する方法を詳しく説明した記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.imで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。