Open2

Golang , Excel (xlsxファイル) 編集

knaka Tech-Blogknaka Tech-Blog

概要

  • Go Excel 編集の例です。

[ 公開 2025/07/05 ]


関連


環境

  • go version go1.24.4

テストしたコード

https://gist.github.com/kuc-arc-f/11cf48c026a9dc2e84a18637ad2fa705

package main

import "github.com/xuri/excelize/v2"

func main() {
    f := excelize.NewFile()
    defer f.Close()

    // 新規シート作成&セル書き込み
    var shht_name = "Sheet1"
    idx, _ := f.NewSheet(shht_name)
    f.SetCellValue(shht_name, "A2", "こんにちは")
    f.SetCellValue(shht_name, "B2", 123)
    f.SetCellValue(shht_name, "A3", "hoge2")
    f.SetCellValue(shht_name, "B3", 456)

    f.SetActiveSheet(idx)
    if err := f.SaveAs("sample.xlsx"); err != nil {
        panic(err)
    }
}


  • import
go get github.com/xuri/excelize/v2
  • run
go run .

  • excel ファイル出力できました。


knaka Tech-Blogknaka Tech-Blog

既存のxlsxファイルを、編集する。

  • 新規ファイル作成でなく、既存ファイル編集です。

  • OpenFile で、ファイル開く
  • 編集後
  • SaveAs で、上書き保存
package main

import (
  "fmt"
  "log"

  "github.com/xuri/excelize/v2"
)

func main() {
    var xls_name = "test.xlsx"
    f, err := excelize.OpenFile(xls_name)
    if err != nil {
        fmt.Println(err)
        return
    }
    defer func() {
        // Close the spreadsheet.
        if err := f.Close(); err != nil {
            fmt.Println(err)
        }
    }()

    var shht_name = "Sheet1"
    f.SetCellValue(shht_name, "A4", "hoge5")
    f.SetCellValue(shht_name, "B4", "1012")

    if err := f.SaveAs(xls_name); err != nil {
        log.Fatal(err)
    }
}