使用go循环特定excel列
在下面的代码中,我使用库从excel工作表中读取数据 我的问题是,使用go循环特定excel列,excel,go,Excel,Go,在下面的代码中,我使用库从excel工作表中读取数据 我的问题是,.GetRows方法读取整个工作表,而我只想从几个列中获取数据 通过查看,我找不到基于列索引或名称提供数据的方法 尽管如此,是否有一种方法可以只从选定的几列中读取数据?或者以某种方式限制.GetRows方法的范围 代码如下: package main import ( "fmt" "github.com/360EntSecGroup-Skylar/excelize" ) type AllData struc
.GetRows
方法读取整个工作表,而我只想从几个列中获取数据
通过查看,我找不到基于列索引或名称提供数据的方法
尽管如此,是否有一种方法可以只从选定的几列中读取数据?或者以某种方式限制.GetRows
方法的范围
代码如下:
package main
import (
"fmt"
"github.com/360EntSecGroup-Skylar/excelize"
)
type AllData struct {
Name, Team, SSN string
}
var mapping []AllData
func main() {
fileName := "Blad1"
xlsx, err := excelize.OpenFile(fileName + ".xlsx")
if err != nil {
fmt.Println(err)
return
}
rows := xlsx.GetRows(fileName)
for _, row := range rows[1:] {
mapping = append(mapping, AllData{ Name: row[0] })
}
m := map[string]interface{}{
"Data": mapping,
}
fmt.Println(m["Data"])
}
看起来至少还有两种方法 通过使用行迭代器
行,错误:=xlsx.rows(“Sheet1”)
如果出错!=零{
log.Fatal(错误)
}
对于行。下一个(){
行:=行。列()
fmt.Printf(“%s\t%s\n”,行[1],行[3])//打印列B和D中的值
}
或者如果你知道确切的范围
n:=10001
对于i:=1;i
我没有浏览库的源代码,因此它可能会或不会对性能和(或)内存使用产生影响。看起来至少还有两种方法 通过使用行迭代器
行,错误:=xlsx.rows(“Sheet1”)
如果出错!=零{
log.Fatal(错误)
}
对于行。下一个(){
行:=行。列()
fmt.Printf(“%s\t%s\n”,行[1],行[3])//打印列B和D中的值
}
或者如果你知道确切的范围
n:=10001
对于i:=1;i
我没有查看库的源代码,因此它可能会或不会在性能和(或)内存使用方面产生影响。第二个选项看起来很有希望,我明天会查看它,看看它是否产生了影响,谢谢!第二个选项快多了,为我节省了~4秒,再次感谢!第二个选择看起来很有希望,我明天会看一看,看看是否有不同,谢谢!第二个选项快多了,为我节省了~4秒,再次感谢!