如何使用 golang 和 excelize 将列添加到现有 excel 工作表?
How do I add columns to an existing excel worksheet using golang and excelize?
我有一些 go 代码可以打开一个 spreadsheet 并且对于每一行,使用行中的 lanid 来查找一些数据。我想将此派生数据添加为 sheet.
中的两个新列
打开 sheet 并遍历所有行都可以正常工作。我只是不知道如何添加新列。欢迎任何建议。
下面的代码抛出一个错误
恐慌:运行时错误:索引超出范围 [7],长度为 7
好像还没有添加列。
f, e := excelize.OpenFile("apps.xlsx")
if e != nil {
log.Fatal(err)
}
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
f.InsertCol("apps", "H")
f.InsertCol("apps", "H")
rows, err := f.GetRows("apps")
if err != nil {
fmt.Println(err)
return
}
for _, row := range rows {
lanid := row[3]
fmt.Print(lanid, "\t")
fmt.Println()
node := orgtee.lookup(lanid)
row[7] = node.title
row[8] = node.domain
}
可以通过SetCellValue
函数设置。
这就是例子。
for i := 1; i < len(rows); i++ {
f.SetCellValue("apps", "G"+strconv.Itoa(i), "coba1")
f.SetCellValue("apps", "H"+strconv.Itoa(i), "coba2")
f.SetCellValue("apps", "I"+strconv.Itoa(i), "coba3")
}
rows, err = f.GetRows("apps") // call GetRows again to update rows value
if err != nil {
fmt.Println(err)
return
}
fmt.Println(rows)
我有一些 go 代码可以打开一个 spreadsheet 并且对于每一行,使用行中的 lanid 来查找一些数据。我想将此派生数据添加为 sheet.
中的两个新列打开 sheet 并遍历所有行都可以正常工作。我只是不知道如何添加新列。欢迎任何建议。
下面的代码抛出一个错误
恐慌:运行时错误:索引超出范围 [7],长度为 7
好像还没有添加列。
f, e := excelize.OpenFile("apps.xlsx")
if e != nil {
log.Fatal(err)
}
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
f.InsertCol("apps", "H")
f.InsertCol("apps", "H")
rows, err := f.GetRows("apps")
if err != nil {
fmt.Println(err)
return
}
for _, row := range rows {
lanid := row[3]
fmt.Print(lanid, "\t")
fmt.Println()
node := orgtee.lookup(lanid)
row[7] = node.title
row[8] = node.domain
}
可以通过SetCellValue
函数设置。
这就是例子。
for i := 1; i < len(rows); i++ {
f.SetCellValue("apps", "G"+strconv.Itoa(i), "coba1")
f.SetCellValue("apps", "H"+strconv.Itoa(i), "coba2")
f.SetCellValue("apps", "I"+strconv.Itoa(i), "coba3")
}
rows, err = f.GetRows("apps") // call GetRows again to update rows value
if err != nil {
fmt.Println(err)
return
}
fmt.Println(rows)