Golang Excel导入数据并标注此行背景色和异常数据提示展示
使用golang读取超大Excel可以使用第三方库"github.com/360EntSecGroup-Skylar/excelize"。它支持读取XLSX格式的Excel文件。
读取Excel文件的方式如下:
```
package main
import (
"fmt"
"github.com/360EntSecGroup-Skylar/excelize"
)
func main() {
f, err := excelize.OpenFile("./test.xlsx")
if err != nil {
fmt.Println(err)
return
}
// 读取指定sheet中的数据
rows := f.GetRows("Sheet1")
for _, row := range rows {
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
}
```
随机取20W行数据可以使用rand包来实现。在读取Excel文件之后,可以使用rand.Perm函数来生成随机数组,然后根据随机数组中的索引来取出数据。
代码示例如下:
```
package main
import (
"fmt"
"github.com/360EntSecGroup-Skylar/excelize"
"math/rand"
"time"
)
func main() {
f, err := excelize.OpenFile("./test.xlsx")
if err != nil {
fmt.Println(err)
return
}
// 读取指定sheet中的数据
rows := f.GetRows("Sheet1")
rand.Seed(time.Now().UnixNano())
// 随机取20W行数据
numRows := len(rows)
randIndex := rand.Perm(numRows)[:20000]
for _, index := range randIndex {
row := rows[index]
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
}
```
这里虽然给出了一个例子,但是对于100列100W行的数据来说,用上述方式读取性能可能会有影响,建议考虑到数