【Go言語】Excelファイルの読み込み・書き込みをする方法について
こんにちは!たけのこです!
ウェブアプリケーションを開発していると、
ときどき見かけるExcelの入出力機能。
いきなり実装ということになっても
プログラミングの基礎構文にも
参考書の応用にも載っていないので、ちょっと戸惑いますよね…
でも、実はGo言語での実装は思いのほか簡単ですので
今回は、Excelファイルの操作機能の実装について紹介します。
- Excelファイルへの書き込みと出力
- Excelファイルの取り込みと読み取り
- クラウドサービスへのExcelファイルアップロードなど
今回のメインはExcelファイルの簡単な操作なので、
クラウドサービスなどへのファイルアップロード方法については省いています。
では、早速どうぞ!
はじめに
Excelファイルは、データの管理やレポート作成する際にとても便利で、様々な機能で多用されているのをよく見かけますね〜
他の言語では、少し複雑なファイル操作ですが
Go言語を使えば、簡単に実装することができます!
GO言語の開発環境がまだの人は以下の記事からどうぞ!
ライブラリのインストール
まず、必要なライブラリをインストールしていきましょう。
今回は「excelize」というライブラリを使用します。
以下のコマンドを実行してインストールします
1go get github.com/360EntSecGroup-Skylar/excelize
Excelにデータを書き込む方法
ライブラリのインストールが終わったら
早速、データの書き込みから実装していきましょう!
以下のコードを丸々コピってOKです!
1package main
2
3import (
4 "log"
5
6 "github.com/360EntSecGroup-Skylar/excelize"
7)
8
9func main() {
10 // 新しいExcelファイルを作成
11 f := excelize.NewFile()
12
13 // シートにデータを書き込む
14 f.SetCellValue("Sheet1", "A1", "Hello")
15 f.SetCellValue("Sheet1", "B1", "World")
16
17 // ファイルを保存(カレントディレクトリに保存されます)
18 if err := f.SaveAs("example.xlsx"); err != nil {
19 log.Fatal(err)
20 }
21}
このコードでは、新しいExcelファイルを作成し、”Sheet1″にデータを書き込み、
example.xlsxという名前で保存しています。
実行すると、カレントディレクトリ配下に
「Hello World」と書かれた「example.xlsx」ファイルが生成されると思います!
Excelファイルを取り込む方法
次に、既存のExcelファイルを読み込む方法を見てみましょう。
コードは以下の通りです。
1package main
2
3import (
4 "fmt"
5 "log"
6
7 "github.com/360EntSecGroup-Skylar/excelize"
8)
9
10func main() {
11 // Excelファイルを開く(カレントディレクトリに存在する必要があります)
12 f, err := excelize.OpenFile("example.xlsx")
13 if err != nil {
14 log.Fatal(err)
15 }
16
17 // シートからデータを読み込む
18 cellValue := f.GetCellValue("Sheet1", "A1")
19 fmt.Println("Cell A1:", cellValue)
20}
21
このコードでは、カレントディレクトリ配下にある「example.xlsx」という
既存のExcelファイルを開き、
“Sheet1“の”A1“セルの値を取得して、ターミナルに表示しています。
まとめ
いかがだったでしょうか?
コードも実装内容も、そこまで複雑ではなかったと思います。
また、「Excelファイルの読み書きをするだけ」という単純な実装ですが
事前に用意したExcelレイアウトの所定位置に書き込みを行なうものに変更したりと
少しだけ改良するだけでも、実現できる機能の幅が広がると思います。
帳票フォーマットを整えて、指定位置にデータ出力したり、
Excel側のVBAと組み合わせたり、色々と改良はできるかも…!!
この記事が、Go言語の勉強に役立っていただけたら幸いです!
というわけで、今回はこの辺りで!
ありがとうございました!!