·
享生活,尽人事

结案了,写入一条数据保存一次这到后面数据多了能不慢吗...

改进:

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)
    }
}