结案了,写入一条数据保存一次这到后面数据多了能不慢吗...
改进:
func Save2Excel(sheetName string, v interface{}, lineNum int) (r error) {
err := excelFile.SetSheetRow(sheetName, "A"+strconv.Itoa(lineNum+1), v)
// excelFile.Save() 删除此行
if err != nil {
fmt.Println(v)
}
return err
}
for i := int64(0); i < dataLoop; i++ {
excelFile.Save() // 处理完一组数据后保存一次
// 从数据库中依次读取对应条数的数据
// (collection, fliter, 单次读取的数据量限制, 跳过前x条数据)
results := FindNextLimit(coll, bson.D{}, dataLimit, i*dataLimit)
// 处理数据
resultsLen = len(results)
for i := 0; i < resultsLen; i++ {
printCount++
bar.Increment()
resultData, _ := bson.Marshal(results[i])
var rawData RawDataType
bson.Unmarshal(resultData, &rawData)
Save2Excel("Sheet1", NewExcelData(rawData), printCount)
}
}