GolangでExcelを非同期にインポートする方法
Goでは、非同期Excelインポートにはgithub.com/tealeg/xlsxライブラリを使用します。
ツールをプロジェクトに追加するには、まずgithub.com/tealeg/xlsxライブラリをインストールする必要があります。ライブラリを取得するには、次のコマンドを使用できます。
go get github.com/tealeg/xlsx
次に、非同期Excelインポートを実現するには以下のコードを使用できます。
package main
import (
"fmt"
"sync"
"github.com/tealeg/xlsx"
)
func main() {
var wg sync.WaitGroup
files := []string{"file1.xlsx", "file2.xlsx", "file3.xlsx"}
for _, file := range files {
wg.Add(1)
go func(filename string) {
defer wg.Done()
xlFile, err := xlsx.OpenFile(filename)
if err != nil {
fmt.Printf("Failed to open file %s: %s\n", filename, err.Error())
return
}
// 处理Excel文件的内容,例如读取单元格数据
for _, sheet := range xlFile.Sheets {
for _, row := range sheet.Rows {
for _, cell := range row.Cells {
value, err := cell.String()
if err != nil {
fmt.Printf("Failed to read cell value: %s\n", err.Error())
continue
}
fmt.Println(value)
}
}
}
fmt.Printf("Imported file %s successfully\n", filename)
}(file)
}
wg.Wait()
}
コード内の sync.WaitGroup ですべての goroutine の完了を待ちます。各 goroutine では xlsx.OpenFile で Excel ファイルを開き、ファイルの内容を操作します。具体的な処理は必要に応じて書き換えてください。
ファイル1.xlsx、ファイル2.xlsx、ファイル3.xlsx を指定した実際のエクセルファイルのパスに必ず置き換えてください。