Excel XLSX ドキュメントを操作するための Go ライブラリ

Microsoft Excel XLSX スプレッドシートの生成、ワークシートの管理、Go API を介したワークシートの行と列の処理をサポートするオープン ソースの Go API。

xlsx ライブラリは、Go を使用して Microsoft Excel ファイルを操作するための非常に高速で信頼性の高い方法を提供します。このライブラリは、Excel XLSX ファイル形式の読み書きを簡素化するのに役立ちます。 XLSX ファイル形式は 2007 年に導入され、2000 年に Microsoft によって採用された Open XML 標準を使用しています。ライブラリはオープン ソースであり、BSD-3-Clause ライセンスの下で利用できます。

オープン ソースの xlsx ライブラリには、新しい XlSX ファイルの作成、既存の Excel ファイルを開く、ワークシートへのアクセス、新しいワークシートの追加、ワークシート内の行と列の管理、追加など、Microsoft Excel ドキュメントの作成と操作に関連するいくつかの重要な機能のサポートが含まれています。セル、行からのセルの取得、セルの書式設定、セルへのスタイルの適用、名前付き範囲のサポートなど。

Previous Next

Xlsx2Go の概要

xlsx の推奨インストール方法は GitHub からです。スムーズにインストールするには、次のコマンドを使用してください。

GitHub 経由で xlsx をインストールする

go get https://github.com/tealeg/xlsx.git

Go ライブラリ経由で新しい XLSX ファイルを作成する

オープン ソースの xlsx ライブラリを使用すると、ソフトウェア開発者は、いくつかの Go コマンドを使用して新しい空の XLSX ファイルをゼロから作成できます。開発者は、新しい NewFile() 関数を使用して新しいファイルを生成できます。作成したら、ワークブックに新しいコンテンツを簡単に追加できます。新しいシートを追加したり、既存のシートを簡単に追加したりできます。作成と作業が完了したら、作業を保存してください。シートを Close() することをお勧めします。

Go API を使用して Excel XLSX ファイルを作成および編集する

// Demonstrates how to create/open/save XLSX files
func Example_files() {
	// Create a new XLSX file
	xl := xlsx.New()
	// Open the XLSX file using file name
	xl, err := xlsx.Open("./test_files/example_simple.xlsx")
	if err != nil {
		log.Fatal(err)
	}
	defer xl.Close()
	// Open the XLSX file using file handler
	zipFile, err := os.Open("./test_files/example_simple.xlsx")
	if err != nil {
		log.Fatal(err)
	}
	xl, err = xlsx.Open(zipFile)
	if err != nil {
		log.Fatal(err)
	}
	// Update the existing XLSX file
	err = xl.Save()
	if err != nil {
		log.Fatal(err)
	}
	// Save the XLSX file under different name
	err = xl.SaveAs("new_file.xlsx")
	if err != nil {
		log.Fatal(err)
	}
}

XLSX ファイルへのアクセスと読み取り

オープンソースの xlsx ライブラリは、開発者が独自の Go アプリケーション内で既存の XLSX スプレッドシート ファイルを開いて読み取ることができる一連の関数を提供しています。いくつかの Go コマンドだけでワークブックのシートに簡単にアクセスすることもできます。開発者は、選択した特定のシートに簡単にアクセスすることもできます。

アクセス&読み取り Excel ファイル Go ライブラリを介して

func Example_access() {
	xl, err := xlsx.Open("./test_files/example_simple.xlsx")
	if err != nil {
		log.Fatal(err)
	}
	defer xl.Close()
	// Get sheet by 0-based index
	sheet := xl.Sheet(0)
	// Get cell by 0-based indexes
	cell := sheet.Cell(13, 27)
	fmt.Println(cell.Value())
	// Get cell by reference
	cell = sheet.CellByRef("N28")
	fmt.Println(cell.Value())
	// Get row by 0-based index
	row := sheet.Row(9)
	fmt.Println(strings.Join(row.Values(), ","))
	// Get cell of row at 0-based col index
	cell = row.Cell(0)
	fmt.Println(cell.Value())
	// Get col by 0-based index
	col := sheet.Col(3)
	fmt.Println(strings.Join(col.Values(), ","))
	// Get cell of col at 0-based row index
	cell = col.Cell(0)
	fmt.Println(cell.Value())
	// Get range by references
	area := sheet.RangeByRef("D10:H13")
	fmt.Println(strings.Join(area.Values(), ","))
}

ワークシートの行と列の処理

セルは Excel ワークシートのバックボーンです。ワークシートは、行と列に編成されたセルで構成されています。 xlsx ライブラリは、Go コマンドを使用してアプリ内で行と列を処理するための幅広い機能をソフトウェア開発者に提供します。新しい行と列の追加、行と列の反復、不要な行と列の削除、行への新しいセルの追加、セルからの値の取得、セル範囲への書式設定の適用などをサポートしています。

ゴーライブラリを介してExcelワークシートのインサート列&ロス

func Example_insert() {
	xl, err := xlsx.Open("./test_files/example_simple.xlsx")
	if err != nil {
		log.Fatal(err)
	}
	defer xl.Close()
	sheet := xl.Sheet(0)
	fmt.Println(sheet.Dimension())
	fmt.Println(strings.Join(sheet.Col(3).Values(), ","))
	// Insert a new col
	sheet.InsertCol(3)
	fmt.Println(sheet.Dimension())
	fmt.Println(strings.Join(sheet.Col(3).Values(), ","))
	fmt.Println(strings.Join(sheet.Col(4).Values(), ","))
	// Insert a new row
	fmt.Println(strings.Join(sheet.Row(9).Values(), ","))
	sheet.InsertRow(3)
	fmt.Println(sheet.Dimension())
	fmt.Println(strings.Join(sheet.Row(9).Values(), ","))
	fmt.Println(strings.Join(sheet.Row(10).Values(), ","))
}

スタイルと書式を適用する

無料ライブラリ xlsx ライブラリには、ソフトウェア開発者がスプレッドシートにフォーマットとスタイルを簡単に適用できるようにするいくつかの重要な機能が用意されています。スタイルは、フォント、色、コンテンツの配置、フォント サイズ、塗りつぶしなどのセルのレイアウトと装飾を提供します。わずか数行のコードで、スタイルをセルの範囲に簡単に適用できます。一度スタイルを作成し、必要に応じて再利用するだけです。セルに数値と日付の書式を適用することもできます。

スタイルを適用し、Goライブラリを介してExcelファイルにフォーマット

gfunc Example_formatting() {
	xl, err := xlsx.Open("./test_files/example_simple.xlsx")
	if err != nil {
		log.Fatal(err)
	}
	defer xl.Close()
	// Create a new format for a bold font with red color and yellow solid background
	redBold := styles.New(
		styles.Font.Bold,
		styles.Font.Color("#ff0000"),
		styles.Fill.Background("#ffff00"),
		styles.Fill.Type(styles.PatternTypeSolid),
	)
	// Add formatting to xlsx
	styleID := xl.AddStyles(redBold)
	sheet := xl.Sheet(0)
	// Set formatting for cell
	sheet.CellByRef("N28").SetStyles(styleID)
	// Set DEFAULT formatting for row. Affects cells not yet allocated in the row.
	// In other words, this style applies to new cells.
	sheet.Row(9).SetStyles(styleID)
	// Set DEFAULT formatting for col. Affects cells not yet allocated in the col.
	// In other words, this style applies to new cells.
	sheet.Col(3).SetStyles(styleID)
	//set formatting for all cells in range
	sheet.RangeByRef("D10:H13").SetStyles(styleID)
}
 日本