Skip to main content

Get full access to 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス and 60K+ other titles, with a free 10-day trial of O'Reilly.

There are also live events, courses curated by job role, and more.

8.3 Microsoft Excelファイルを扱う

企業内の活動において、Microsoft Excel(以下、Excel)を用いたデータ管理は広く用いられています。 そのためサービスの画面に表示した一覧データを、Excelファイルとしてダウンロードして何かしらの業務判断を行いたい、あるいは編集後のExcelファイルをシステムに一括登録したいという要望が出てくるのは自然なことでしょう。

そういった要望に対して、ExcelファイルからCSVファイル形式での保存や、CSVファイルをExcelで開くといったことができるため、システムへの入出力はCSVで統一すれば良いのではないか? と思う方も多いかと思います。 一方でCSV保存後のシステムへのアップロードや、CSVファイルをExcelで開く際に数値・文字列の扱いに難があり、予期せぬ落とし穴にハマることも多くあります。 このような場合には、CSVへの変換ステップをはさまず直接Excelファイルを扱えるようにした方が良い場面もあります。

本節では、業務を扱うシステムを開発するときにしばしば登場する、ExcelをGoで扱う方法を説明します。

GoでExcelを操作する場合には、 tealeg/xlsxxuri/excelize が有名です。 ここでは xuri/excelize を用いて説明します。

8.3.1 Excelファイルに対する書き込み・読み込み

excelizeのAPIは、良くも悪くもとてもシンプルです。シート名、セル位置を Sheet1A1 と直接指定するスタイルで単純に用いるだけであれば迷わず使えます。

package main

import (
	"fmt"
	"log"

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

Get 実用 Go言語 ―システム開発の現場で知っておきたいアドバイス now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.

Don’t leave empty-handed

Get Mark Richards’s Software Architecture Patterns ebook to better understand how to design components—and how they should interact.

It’s yours, free.

Get it now
Cover of Software Architecture Patterns

Check it out now on O’Reilly

Dive in for free with a 10-day trial of the O’Reilly learning platform—then explore all the other resources our members count on to build skills and solve problems every day.

Start your free trial Become a member now