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 ドキュメントの作成と操作に関連するいくつかの重要な機能のサポートが含まれています。セル、行からのセルの取得、セルの書式設定、セルへのスタイルの適用、名前付き範囲のサポートなど。
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)
}