zoukankan      html  css  js  c++  java
  • Qtxlsx的使用

    上一遍讲述了基于Qt5.9.8下编译Xtxlsx,本遍讲述基于Qt5.9.8下使用Qtxlsx

    1、打开Qt Creator 4.8.2(Enterprise),创建工程,选择版本

      

    2、在pro文件中添加QT += xlsx

      

     3、在main.cpp中添加头文件

      

     4、main函数添加如下代码

      QFile::remove("D:/1.xlsx");

      QXlsx::Document doc("D:/1.xlsx");

      

      //报表标题(1-4行)

      doc.setRowHeight(1,4,30);

      Format title_format;

      title_format.setFontSize(11);

      title_format.setFontBold(true);

      title_format.setFontColor(QColor(Qt::red));

      title_format.setBorderStyle(Format::BorderThin);

      title_format.setHorizontalAlignment(Format::AlignLeft);

      title_format.setVerticalAlignment(Format::AlignVCenter);

      doc.mergeCells("A1:H1",title_format);

      doc.mergeCells("A2:H2",title_format);

      doc.mergeCells("A3:H3",title_format);

      doc.mergeCells("A4:H4",title_format);

      doc.write("A1","巡视单位:高岐变");

      doc.write("A2","巡视路线:安防巡视");

      doc.write("A3","巡视时间:2019-08-28 14:47:30");

      doc.write("A4","巡视人员:hs");

      //巡视属性(5行)

      doc.setColumnWidth(1,15);

      doc.setColumnWidth(2,15);

      doc.setColumnWidth(3,15);

      doc.setColumnWidth(4,15);

      doc.setColumnWidth(5,15);

      doc.setColumnWidth(6,50);

      doc.setColumnWidth(7,50);

      doc.setColumnWidth(8,15);

      doc.setRowHeight(5,20);

      Format attr_format;

      attr_format.setFontSize(11);

      attr_format.setFontBold(true);

      attr_format.setFontColor(QColor(Qt::black));

      attr_format.setBorderStyle(Format::BorderThin);

      attr_format.setHorizontalAlignment(Format::AlignHCenter);

      attr_format.setVerticalAlignment(Format::AlignVCenter);

      attr_format.setPatternBackgroundColor(QColor(Qt::gray));

      doc.write("A5","变电站名称",attr_format);

      doc.write("B5","巡视路线名",attr_format);

      doc.write("C5","巡视点名",attr_format);

      doc.write("D5","分析时间",attr_format);

      doc.write("E5","分析结果",attr_format);

      doc.write("F5","原始图片",attr_format);

      doc.write("G5","分析图片",attr_format);

      doc.write("H5","备注",attr_format);

      //内容(从第6行开始)

      for(int i=6;i<20;i++)

      {

        doc.setRowHeight(i,180);

        Format cell_format;

        cell_format.setFontSize(11);

        cell_format.setFontColor(QColor(Qt::black));

        cell_format.setBorderStyle(Format::BorderThin);

        cell_format.setHorizontalAlignment(Format::AlignHCenter);

        cell_format.setVerticalAlignment(Format::AlignVCenter);

        doc.write(i,1,"测试变电站",cell_format);

        doc.write(i,2,"测试路线",cell_format);

        doc.write(i,3,"测试点",cell_format);

        doc.write(i,4,"2019-11-11 00:00:00",cell_format);

        doc.write(i,5,"无",cell_format);

        QImage image1("D:/CPSB_test_2016.jpg");

        QImage image2("D:/ZJFX_test_2016.jpg");

        doc.insertImage(i-1,6-1,image1.scaled(360,240,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));

        doc.insertImage(i-1,7-1,image2.scaled(360,240,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));

        doc.write(i,8," ",cell_format);

      }

      doc.save();

     5、最后生成的报表如下

       

    6、更多的使用可以参照E:/QtXlsxWriter-master/examples

      

      里面包含了Qtxlsx各种各样的使用。

  • 相关阅读:
    移动端IM系统的协议选型:UDP还是TCP?
    【原创】新手入门一篇就够:从零开发移动端IM
    【原创】轻量级即时通讯技术MobileIMSDK:Android客户端开发指南
    【原创】轻量级移动设备即时通讯技术MobileIMSDK的常见问题解答
    【原创】轻量级移动端即时通讯技术 MobileIMSDK 发布了
    实时视频直播客户端技术盘点:Native、HTML5、WebRTC、微信小程序
    腾讯技术分享:腾讯是如何大幅降低带宽和网络流量的(图片压缩篇)
    微信团队分享:微信移动端的全文检索多音字问题解决方案
    IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token
    腾讯技术分享:Android版手机QQ的缓存监控与优化实践
  • 原文地址:https://www.cnblogs.com/zhangnianyong/p/11447210.html
Copyright © 2011-2022 走看看