2025-06-09T13:38:11
This commit is contained in:
parent
23667e3f8a
commit
2170adff06
BIN
experiment_data/analysis_state/92-new.xlsx
Normal file
BIN
experiment_data/analysis_state/92-new.xlsx
Normal file
Binary file not shown.
BIN
experiment_data/analysis_state/94-new.xlsx
Normal file
BIN
experiment_data/analysis_state/94-new.xlsx
Normal file
Binary file not shown.
@ -528,6 +528,172 @@ void XlsxHandler::writeAnalysisOperationDetail(QXlsx::Document *xlsx, const int
|
||||
|
||||
void XlsxHandler::writeSmoothnessFile(const QString filePath)
|
||||
{
|
||||
if(Global::_curveFileDataVtr.empty()){
|
||||
logde<<"curve file data vtr empty...";
|
||||
return;
|
||||
}
|
||||
|
||||
Global::ExperimentInfo& ei = Global::_curveFileDataVtr.first().ei;
|
||||
|
||||
QXlsx::Document xlsx;
|
||||
xlsx.addSheet("Sheet1"); // 添加一个新的工作表
|
||||
|
||||
// Write experiment info.
|
||||
int row = 1;
|
||||
xlsx.write(row++ , 1, ConFileDataInfo);
|
||||
|
||||
xlsx.write(row , 1, ConSampleName);
|
||||
QString sampleName = ei.sampleName;
|
||||
if(sampleName.isEmpty()){
|
||||
sampleName = "sample";
|
||||
}
|
||||
xlsx.write(row , 2, sampleName);
|
||||
row++;
|
||||
|
||||
xlsx.write(row , 1, ConSampleWeight);
|
||||
QString sampleWeight = ei.sampleWeight;
|
||||
if(sampleWeight.isEmpty()){
|
||||
sampleWeight = "1";
|
||||
}
|
||||
xlsx.write(row , 2, sampleWeight);
|
||||
|
||||
xlsx.write(row , 3, ConUnitMg);
|
||||
row++;
|
||||
|
||||
xlsx.write(row , 1, ConCrucibleWeight);
|
||||
xlsx.write(row , 2, 0);
|
||||
xlsx.write(row , 3, ConUnitMg);
|
||||
row++;
|
||||
|
||||
xlsx.write(row , 1, Conexperimenter);
|
||||
QString experimentor = ei.experimentor;
|
||||
if(experimentor.isEmpty()){
|
||||
experimentor = "experimentor";
|
||||
}
|
||||
xlsx.write(row , 2, experimentor);
|
||||
row++;
|
||||
|
||||
xlsx.write(row , 1, ConDate);
|
||||
QString date = ei.date;
|
||||
if(date.isEmpty()){
|
||||
date = "20250101";
|
||||
}
|
||||
xlsx.write(row , 2, date);
|
||||
row++;
|
||||
|
||||
xlsx.write(row , 1, ConMeasureType);
|
||||
xlsx.write(row , 2, "样品");
|
||||
row++;
|
||||
|
||||
int phaseSizeRow = row;
|
||||
int phaseCount = 0;
|
||||
xlsx.write(row , 1, ConPhaseSize);
|
||||
xlsx.write(row , 2, ei.phaseVtr.size());
|
||||
row++;
|
||||
|
||||
// Write phase data.
|
||||
|
||||
logde<<"curve file vtr size:"<<Global::_curveFileDataVtr.size();
|
||||
QVector<Global::PhaseTotalInfo>& phaseVtr =
|
||||
Global::_curveFileDataVtr.first().phaseTotalVtr;
|
||||
|
||||
int dataSizeRow = 0;
|
||||
// logde<<"phase vtr size:"<<ei.phaseVtr.size();
|
||||
|
||||
for(int i = 0; i < phaseVtr.size();i++){
|
||||
logde<<"phase index:"<<i;
|
||||
// const Phase& phase = ei.phaseVtr.at(i);
|
||||
|
||||
Phase phase = phaseVtr.at(i).phase;
|
||||
|
||||
if(phase.onoff == 0){
|
||||
// logde<<"onoff == 0.";
|
||||
continue;
|
||||
}
|
||||
|
||||
phaseCount++;
|
||||
|
||||
xlsx.write(row , 1, ConPhaseProfix);
|
||||
xlsx.write(row , 2, ConPhaseHeaderTime);
|
||||
xlsx.write(row , 3, ConPhaseHeaderTemp);
|
||||
xlsx.write(row , 4, ConPhaseHeaderVoltage);
|
||||
xlsx.write(row , 5, ConPhaseHeaderTime);
|
||||
row++;
|
||||
|
||||
xlsx.write(row , 1, ConPhaseIndex);
|
||||
xlsx.write(row , 2, i + 1);
|
||||
row++;
|
||||
|
||||
// phase info
|
||||
xlsx.write(row , 1, ConPhaseCutoffTemp);
|
||||
xlsx.write(row , 2, phase.cutoff_temp);
|
||||
xlsx.write(row , 3, ConUnitDegreeCentigrade);
|
||||
row++;
|
||||
|
||||
xlsx.write(row , 1, ConPhaseHeatingRate);
|
||||
xlsx.write(row , 2, phase.temp_flow);
|
||||
xlsx.write(row , 3, ConUnitDegreeCentigradePerMin);
|
||||
row++;
|
||||
|
||||
xlsx.write(row , 1, ConPhaseConstantTempTime);
|
||||
xlsx.write(row , 2, phase.constant_temp_time_min);
|
||||
xlsx.write(row , 3, ConUnitMin);
|
||||
row++;
|
||||
|
||||
xlsx.write(row , 1, ConPhaseAtmosphere);
|
||||
switch(phase.gas){
|
||||
case GasType::NC:
|
||||
xlsx.write(row , 2, "NC");
|
||||
break;
|
||||
case GasType::N2:
|
||||
xlsx.write(row , 2, "N2");
|
||||
break;
|
||||
case GasType::O2:
|
||||
xlsx.write(row , 2, "O2");
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
row++;
|
||||
|
||||
// phase data.
|
||||
// logde<<"Global::_curveExperimentDataVtr size:"
|
||||
// <<Global::_curveExperimentDataVtr.size();
|
||||
|
||||
const QVector<Global::ExperimentData>& edVtr =
|
||||
phaseVtr.at(i).dataVtr;
|
||||
|
||||
// phase data size.
|
||||
dataSizeRow = row;
|
||||
xlsx.write(row , 1, ConPhaseDataSize);
|
||||
xlsx.write(row , 2, edVtr.size());
|
||||
row++;
|
||||
|
||||
// logde<<"edVtr size:"<<edVtr.size();
|
||||
|
||||
for(int index = 0;index < edVtr.size();index++){
|
||||
// logde<<"index :"<<index;
|
||||
const Global::ExperimentData & ed = edVtr.at(index);
|
||||
|
||||
xlsx.write(row , 1, index);
|
||||
xlsx.write(row , 2, ed.runTime);
|
||||
xlsx.write(row , 3, ed.sampleTemp);
|
||||
xlsx.write(row , 4, ed.dsc);
|
||||
xlsx.write(row , 5, ed.constantTempTime);
|
||||
row++;
|
||||
}
|
||||
}
|
||||
//
|
||||
xlsx.write(phaseSizeRow , 1, ConPhaseSize);
|
||||
xlsx.write(phaseSizeRow , 2, phaseCount);
|
||||
//
|
||||
writeAnalysisOperationDetail(&xlsx,row);
|
||||
//
|
||||
logde<<"before xlsx save as...";
|
||||
if (!xlsx.saveAs(filePath)) {
|
||||
logde<<"Save xlsx failed.";
|
||||
return ;
|
||||
}
|
||||
|
||||
#if 0
|
||||
if(Global::_curveFileDataVtr.empty()){
|
||||
// Load experiment data.
|
||||
|
@ -279,7 +279,7 @@ bool MainWindow::saveFile(const QString fileName,const Global::Mode mode)
|
||||
}else{
|
||||
logde<<"analysis xlsx data...";
|
||||
if(Global::_smoothnessFlag){
|
||||
|
||||
XlsxHandler::writeSmoothnessFile(filePath);
|
||||
}else{
|
||||
XlsxHandler::appendAnalysisOperation(filePath);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user