引用https://github.com/tealeg/xlsx,使用不当会引发panic。当xlsx表格含有空行时,xlsx返回的行数和真实有效行数会造成困扰,如下图,23073之后的行都为无效数据,如果尝试获取cell数据会panic。
package main
import (
"third/xlsx"
"fmt"
)
func main() {
xlFile, err := xlsx.OpenFile("/Users/baixiao/Go/src/test/12.29-女性.xlsx")
if err != nil {
fmt.Printf("OpenFile error: %v", err)
return
}
fmt.Println(len(xlFile.Sheets[0].Rows))
for _, row := range xlFile.Sheets[0].Rows {
var userId string
userId, err = row.Cells[0].String()
if err != nil {
fmt.Printf("cell %s string error: %v", userId, err)
continue
}
//fmt.Println(i, userId)
}
}
解决方法为获取cell数据前判断长度