该方式采用的excelize的方式读取xlsx的文件
package script
import (
"fmt"
"os"
"reflect"
"strings"
"github.com/360EntSecGroup-Skylar/excelize/v2"
)
// goroute 该函数以并发处理每一个xslx
func OpenXslxFile(FileName string) {
f, err := excelize.OpenFile(FileName)
if err != nil {
fmt.Println(err)
return
}
iterateAllSheet(f)
}
//获得该xlsx的句柄,遍历句柄的所含所有sheet的名称以进行各个子表的读取
func iterateAllSheet(f *excelize.File) {
for _, sheet1 := range f.GetSheetMap() {
// fmt.Println(sheet1)
iterateOneSheet(f, sheet1)
}
}
//获得该子表的每行数据,并处理
func iterateOneSheet(f *excelize.File, sheetName string) {
rows, err := f.GetRows(sheetName)
if err != nil {
fmt.Println(err)
return
}
handleSheetAllRows(rows)
}
type valueDataT struct {
v map[string]interface{}
}
// 提取每行数据
func handleSheetAllRows(rows [][]string) {
//
HeadData := make(map[string]interface{})
valueData := []valueDataT{}
for _, row