qt Qxlsx 写入数据导致程序内存溢出

qt Qxlsx 写入数据导致程序内存溢出 有知道原因的朋友请求帮帮忙 谢谢 代码如下
xlsx = new QXlsx::Document(getFileName());

        for(int i = 0 ; i < 10 ;i++){

            receiveData receive_data = dataQueue.dequeue();
            xlsx->selectSheet("battery_info");

            xlsx->write(_index,1,_index);
            xlsx->write(_index,2, receive_data.currentTime);
            xlsx->write(_index,3 ,receive_data.battery_vol);
            xlsx->write(_index,4 ,receive_data.battery_amp);
            xlsx->write(_index,5 ,receive_data.soc);
            xlsx->write(_index,6 ,receive_data.soh);
            xlsx->write(_index,7 ,receive_data.remain_capacity);
            xlsx->write(_index,8 ,receive_data.full_capcity);
            xlsx->write(_index,9 ,receive_data.cycyle_time);

            int loop_index = 10;
            for(int i = 0;i<  receive_data.tempList.size();i++){
                xlsx->write(_index,loop_index,receive_data.tempList.at(i));
                loop_index+=1;
            }

            xlsx->selectSheet("cell_vol");
            xlsx->write(_index,1,_index);
            xlsx->write(_index,2,receive_data.currentTime);
            loop_index = 3;
            for(int i = 0;i xlsx->write(_index,loop_index,receive_data.cellsVol.at(i));
                loop_index+=1;
            }
             xlsx->selectSheet("status");
             xlsx->write(_index,1,_index);
             xlsx->write(_index,2,receive_data.currentTime);

             xlsx->write(_index,3 ,receive_data.sys_status.sys.sys_status_charge);
             xlsx->write(_index,4 ,receive_data.sys_status.sys.sys_status_discharge);
             xlsx->write(_index,5 ,receive_data.sys_status.sys.sys_status_effict_charge);
             xlsx->write(_index,6 ,receive_data.sys_status.sys.sys_status_effict_discharge);
             xlsx->write(_index,7 ,receive_data.sys_status.sys.sys_status_charge_current_limit);
             xlsx->write(_index,8 ,receive_data.sys_status.sys.sys_status_heat_film);
             xlsx->write(_index,9 ,receive_data.sys_status.sys.sys_status_acin);
             xlsx->write(_index,10,receive_data.sys_status.sys.sys_status_fully);

             xlsx->write(_index,11,receive_data.alarm_status.alarmStatus.alarm_status_cell_overcharge);
             xlsx->write(_index,12,receive_data.alarm_status.alarmStatus.alarm_status_cells_overcharge);
             xlsx->write(_index,13,receive_data.alarm_status.alarmStatus.alarm_status_cell_overdischarge);
             xlsx->write(_index,14,receive_data.alarm_status.alarmStatus.alarm_status_cells_overdischarge);
             xlsx->write(_index,15,receive_data.alarm_status.alarmStatus.alarm_status_single_diff_presure);
             xlsx->write(_index,16,receive_data.alarm_status.alarmStatus.alarm_status_charge_over_current);
             xlsx->write(_index,17,receive_data.alarm_status.alarmStatus.alarm_status_discharge_over_current);
             xlsx->write(_index,18,receive_data.alarm_status.alarmStatus.alarm_status_mos_hight_temp);
             xlsx->write(_index,19,receive_data.alarm_status.alarmStatus.alarm_status_env_hight_temp);
             xlsx->write(_index,20,receive_data.alarm_status.alarmStatus.alarm_status_env_low_temp);
             xlsx->write(_index,21,receive_data.alarm_status.alarmStatus.alarm_status_charge_hight_temp);
             xlsx->write(_index,22,receive_data.alarm_status.alarmStatus.alarm_status_charge_low_temp);
             xlsx->write(_index,23,receive_data.alarm_status.alarmStatus.alarm_status_discharge_hight_temp);
             xlsx->write(_index,24,receive_data.alarm_status.alarmStatus.alarm_status_discharge_low_temp);

             xlsx->write(_index,25,receive_data.charge_protect_status.chargeProtect.charge_protect_cell_ov);
             xlsx->write(_index,26,receive_data.charge_protect_status.chargeProtect.charge_protect_cells_ov);
             xlsx->write(_index,27,receive_data.charge_protect_status.chargeProtect.charge_protect_cells_oc);
             xlsx->write(_index,28,receive_data.charge_protect_status.chargeProtect.charge_protect_high_temp);
             xlsx->write(_index,29,receive_data.charge_protect_status.chargeProtect.charge_protect_low_temp);

             xlsx->write(_index,30,receive_data.discharge_protect_status.disChargeProtect.discharge_protect_cell_ov);
             xlsx->write(_index,31,receive_data.discharge_protect_status.disChargeProtect.discharge_protect_cells_ov);
             xlsx->write(_index,32,receive_data.discharge_protect_status.disChargeProtect.discharge_protect_oc);
             xlsx->write(_index,33,receive_data.discharge_protect_status.disChargeProtect.discharge_protect_short_cycle);
             xlsx->write(_index,34,receive_data.discharge_protect_status.disChargeProtect.discharge_protect_high_temp);
             xlsx->write(_index,35,receive_data.discharge_protect_status.disChargeProtect.discharge_protect_low_temp);

             xlsx->write(_index,36,receive_data.other_protect_status.otherProtect.other_protect_mos_high_temp);
             xlsx->write(_index,37,receive_data.other_protect_status.otherProtect.other_protect_env_high_temp);
             xlsx->write(_index,38,receive_data.other_protect_status.otherProtect.other_protect_env_low_temp);
             xlsx->write(_index,39,receive_data.other_protect_status.otherProtect.other_protect_cell_high_diff);

             xlsx->write(_index,40,receive_data.switch_status.swittch.swtich_set_charge_open);
             xlsx->write(_index,41,receive_data.switch_status.swittch.swtich_set_discharge_open);
             xlsx->write(_index,42,receive_data.switch_status.swittch.swtich_set_audibile_alert_open);
             xlsx->write(_index,43,receive_data.switch_status.swittch.swtich_set_lcd_alert_open);

            _index+=1;


      }
      xlsx->save();

看一下这篇文章,可能对你有帮助: