• 正文
  • 相关推荐
申请入驻 产业图谱

QT使用QtXlsxWriter读取excel文件

01/08 14:23
261
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

QtXlsxWriter是一个用于操作Excel文件的Qt库,支持读写.xlsx格式的文件。

源码引用

代码引用比较简单,可以直接在代码项目文件里引用QtXlsxWriter,在.pro文件中添加:

include(path/to/QtXlsxWriter/src/xlsx.pri)
 

测试代码

void readExcel(const QString &fileName)
{
   QXlsx::Document xlsx(fileName);

   if (xlsx.sheetNames().isEmpty())// 空文件或打不开
   {
       qDebug() << "open failed or file empty";
       return;
   }

   // 读单个单元格
   QVariant v = xlsx.read("A1");
   qDebug() << "A1 =" << v;

   // 遍历整张表
   for (int row = 2; row <= xlsx.dimension().lastRow(); ++row) {

       qDebug() << QString("%1.%2  %3  %4  %5  %6  ").arg(row).arg(xlsx.read(row, 1).toString()) 
                   .arg(xlsx.read(row, 2).toString()).arg(xlsx.read(row, 3).toString())
                   .arg(xlsx.read(row, 4).toString()).arg(xlsx.read(row, 5).toString());
   }
}

运行发现读取的时候有点问题,会直接把表格里的公式给读出来:
excel内容:
excel
程序读取日志:

A1 = QVariant(QString, "序号")
"2.=ROW()-1  0  2      "
"3.=ROW()-1  =B2+2  2      "
"4.=ROW()-1  =B3+2  2      "
"5.=ROW()-1  =B4+2  2      "
"6.=ROW()-1  12  2      "
"7.=ROW()-1  =B6+2  2      "
"8.=ROW()-1  =B7+2  2      "
"9.=ROW()-1  =B8+2  2      "
"10.=ROW()-1  =B9+2  2      "
"11.=ROW()-1  =B10+2  2      "
"12.=ROW()-1  =B11+2  2      "
"13.=ROW()-1  =B12+2  2      "
"14.=ROW()-1  =B13+2  2      "
"15.=ROW()-1  32  2      "
"16.=ROW()-1  =B15+2  2      "
"17.=ROW()-1  =B16+2  2      "
"18.=ROW()-1  =B17+2  2      "
"19.=ROW()-1  =B18+2  2      "
"20.=ROW()-1  =B19+2  2      "

我们需要读取到表格显示值,不用背后的公式,具体修改的代码如下:

如上图中部分代码,就是判断单元表格里如果有公式,则返回公式,这里可以将这部分代码注释掉,直接返回单元格内容,修改后运行结果如下:

A1 = QVariant(QString, "序号")
"2.1  0  2      "
"3.2  2  2      "
"4.3  4  2      "
"5.4  6  2      "
"6.5  12  2      "
"7.6  14  2      "
"8.7  16  2      "
"9.8  18  2      "
"10.9  20  2      "
"11.10  22  2      "
"12.11  24  2      "
"13.12  26  2      "
"14.13  28  2      "
"15.14  32  2      "
"16.15  34  2      "
"17.16  36  2      "
"18.17  38  2      "
"19.18  40  2      "
"20.19  42  2      "

这看起来就正常了。

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录