用tealeg/xlsx导入excel表格中空单元格出错的问题

tealeg/xlsx它这个包很奇怪,用

for _, sheet := range xlFile.Sheets {
        for _, row := range sheet.Rows {
            for m, cell := range row.Cells {

这样的形式获取已经使用了的单元格区间,

如上图,D1单元格不填数据,那么,第一行空行就走不下去。D1单元格填了数据,有时候1~4行row.Cells的长度都是4,有时候仅仅第一行的row.Cells的长度是4,下面2~4行的row.Cells的长度是2。有时候单元格都是空,但调整了大小,它也认为是使用了的区间。有时候第一行的第10列填个数字,那么下面的几行都认为使用到了10列。
对于下面这样获取单元格值的写法——没有进行row.Cells区间判断,会出错:单元格为空,那么就可能row.Cells[index]超界。按常规想法,单元格为空,row.Cells[4].String()返回空值就好了嘛,还要一个个去判断?

for _, sheet := range xlFile.Sheets {
        for _, row := range sheet.Rows {
            catalog.Tnumber, err = row.Cells[1].String()
            catalog.Name = row.Cells[2].String()
            catalog.Drawn, err = row.Cells[3].String()
            catalog.Designd, err = row.Cells[4].String()

共 1 个回复