【问题标题】:How to Write more than one data on same cell when export to excell?导出到excel时如何在同一个单元格上写入多个数据?
【发布时间】:2022-08-19 20:00:10
【问题描述】:

我是我们的 Qxlsx,用于将数据导出到 Excel。日、月和年数据不是作为一个整体提供的,而是分开提供的。我可以在用excel打印它们时一张一张打印出来。我怎样才能结合这3个数据并打印出来?

这是我的导出代码

for (i = 0; i < maxRowCount; ++i) // get maximum data row
  {

    //strList.clear();
    for (j = 0; j < 7; ++j) 
    {
   /* 
            j[0] = Temp Değeri
            j[1] = Humadity      
            j[2] = Day      
            j[3] = moon       
            j[4] = Year      
            j[5] = Second   
            j[6] = Minute   
            j[7] = Hour     


        */

      if (i < dataColums[j].count()) {

      

        format.setNumberFormatIndex(2); // for save as number format 
      
        
if (j == 0)  
        {
          xlsx.write(k, 3, dataColums[j][i], format); 
         
        }
        else if(j==1) 
        {
          xlsx.write(k, 4, dataColums[j][i], format); 
          
        }

        else if(j==2  ) 
        {
//here I need write day moon and year when j=2 But I cannot write 3 data on same time.

       }

    }
    k = k + 1;

  }
  • dataColums 的类型是什么?
  • 此外,您的代码被 for-switch 反模式弄乱了。如果你只是按顺序写行会更干净

标签: c++ excel qt


【解决方案1】:

听起来你只想QString::arg

xlsx.write(k, 5, QString("%1/%2/%3").arg(dataColums[4][i]).arg(dataColums[3][i]).arg(dataColums[2][i]));

顺便说一句,如果你消除了 for-switch 模式,你可以让你的代码更简洁:

format.setNumberFormatIndex(2);

for (int j = 0; j < 8; j++) {
  maxRowCount = min(maxRowCount, dataColums[j].count());
}

for (i = 0; i < maxRowCount; i++, k++) {
    xlsx.write(k, 3, dataColums[0][i], format); 
    xlsx.write(k, 4, dataColums[1][i], format); 
    xlsx.write(k, 5, QString("%1/%2/%3").arg(dataColums[4][i]).arg(dataColums[3][i]).arg(dataColums[2][i]));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 2014-10-31
    相关资源
    最近更新 更多