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();