ホームページ >バックエンド開発 >Golang >golang は Excel の読み書きを実装します

golang は Excel の読み書きを実装します

王林
王林オリジナル
2023-05-13 10:04:373550ブラウズ

データ処理の需要がますます重要になるにつれて、Excel テーブル内のデータは徐々に日常の仕事や生活に不可欠な部分になってきました。 Golang プログラミング言語には、Excel ファイルを簡単に読み書きできる優れたライブラリもあります。この記事では、Golang バージョンの Excel ファイルの読み書きを段階的に説明します。

  1. Excel 処理ライブラリのインストール

Excel ファイルの読み取りおよび書き込み操作を実装するには、サードパーティの Golang ライブラリである go-excelize を使用する必要があります。次のコマンドを実行してライブラリをインストールします。

go get github.com/360EntSecGroup-Skylar/excelize
  1. Read Excel File

まず、「test.xlsx」という名前の Excel ファイルを開き、Sheet1 を挿入します。読み取る必要があるテーブルとして。

f, err := excelize.OpenFile("./test.xlsx")
if err != nil {
    fmt.Println(err)
    return
}
// 取得 Sheet1 表格中所有的行
rows, err := f.GetRows("Sheet1")
if err != nil {
    fmt.Println(err)
    return
}

GetRows メソッドを使用すると、Sheet1 テーブル内のすべての行を簡単に取得できます。次に、データの各行をループして、各セルの値を出力します。

for i, row := range rows {
    for j, colCell := range row {
        fmt.Printf("(%d,%d) %s
", i+1, j+1, colCell)
    }
}
  1. Excel ファイルの書き込み

Excel ファイルの読み取りと同様に、まず「write.xlsx」という名前の Excel ファイルを開き、書き込むファイルを選択します。入力したフォームはSheet1です。

f := excelize.NewFile()
// 创建一个名为 Sheet1 的表格
sheetIndex := f.NewSheet("Sheet1")
// 设置 Sheet1 表格为当前操作表格
f.SetActiveSheet(sheetIndex)

これで、新しい Excel ファイルを作成し、Sheet1 という名前のテーブルを追加しました。次に、必要なデータをテーブルに書き込みます。

// 向 A1 单元格写入内容
f.SetCellValue("Sheet1", "A1", "姓名")
f.SetCellValue("Sheet1", "B1", "年龄")
f.SetCellValue("Sheet1", "C1", "性别")

// 写入数据行
f.SetCellValue("Sheet1", "A2", "张三")
f.SetCellValue("Sheet1", "B2", 26)
f.SetCellValue("Sheet1", "C2", "男")

f.SetCellValue("Sheet1", "A3", "李四")
f.SetCellValue("Sheet1", "B3", 28)
f.SetCellValue("Sheet1", "C3", "男")

f.SetCellValue("Sheet1", "A4", "小花")
f.SetCellValue("Sheet1", "B4", 24)
f.SetCellValue("Sheet1", "C4", "女")

上記のコードにより、Excel テーブルにデータを正常に書き込むことができました。最後に、データを確実に保持できるようにファイルを保存する必要があります。

err := f.SaveAs("./write.xlsx")
if err != nil {
    fmt.Println(err)
}
  1. 完全なコード

注: このサンプル コードはデモンストレーションのみを目的としており、ファイルの読み取りと書き込みに使用されるテーブル形式は実際の状況に応じて調整する必要があります。 。

完全なコードは次のとおりです:

package main

import (
    "fmt"
    "github.com/360EntSecGroup-Skylar/excelize"
)

func main() {
    // 读取 Excel 文件
    f, err := excelize.OpenFile("./test.xlsx")
    if err != nil {
        fmt.Println(err)
        return
    }
    // 取得 Sheet1 表格中所有的行
    rows, err := f.GetRows("Sheet1")
    if err != nil {
        fmt.Println(err)
        return
    }
    // 遍历所有单元格的数据
    for i, row := range rows {
        for j, colCell := range row {
            fmt.Printf("(%d,%d) %s
", i+1, j+1, colCell)
        }
    }

    // 创建 Excel 文件
    f := excelize.NewFile()
    // 创建一个名为 Sheet1 的表格
    sheetIndex := f.NewSheet("Sheet1")
    // 设置 Sheet1 表格为当前操作表格
    f.SetActiveSheet(sheetIndex)

    // 向 A1 单元格写入内容
    f.SetCellValue("Sheet1", "A1", "姓名")
    f.SetCellValue("Sheet1", "B1", "年龄")
    f.SetCellValue("Sheet1", "C1", "性别")

    // 写入数据行
    f.SetCellValue("Sheet1", "A2", "张三")
    f.SetCellValue("Sheet1", "B2", 26)
    f.SetCellValue("Sheet1", "C2", "男")

    f.SetCellValue("Sheet1", "A3", "李四")
    f.SetCellValue("Sheet1", "B3", 28)
    f.SetCellValue("Sheet1", "C3", "男")

    f.SetCellValue("Sheet1", "A4", "小花")
    f.SetCellValue("Sheet1", "B4", 24)
    f.SetCellValue("Sheet1", "C4", "女")

    // 保存 Excel 文件
    err := f.SaveAs("./write.xlsx")
    if err != nil {
        fmt.Println(err)
    }
}
  1. 概要

上記のコードのデモを通して、Golang を使用して読み取りと書き込みを実装していることがわかります。 Excel ファイルの操作は非常にシンプルで効率的です。 go-excelize は Golang コミュニティの強力なライブラリであり、Excel ファイルを処理するための多くの関数を提供し、他のライブラリと統合できます。したがって、Golang は Excel ファイルを処理するための非常に良い選択肢の 1 つとなりました。

以上がgolang は Excel の読み書きを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。