在Ubuntu Linux系统下(虚拟机为Oracle VM VirtualBox),使用QtXlsx库在自己的Qt项目中

文章详细介绍了如何在Ubuntu18.04上通过源码安装Perl5.14.2,并成功编译和使用QtXlsx库生成动态链接库。在项目中,将编译后的include和lib文件夹及src文件夹放入相应目录,并在.pro文件中动态链接库,实现xlsx文件的导出功能。代码示例展示了如何创建和格式化xlsx表格内容。
摘要由CSDN通过智能技术生成

1.安装Perl

我采用的是源码安装,相关文档如下(亲测可用,有的文章写的不太对),这个方式的前提是你的虚拟机Linux可以上网(不能上网的可以查看我的往期文章)

Ubuntu18.04 上源码方式安装 perl-5.14.2_ubuntu18.04 兼容多个perl_ChingDawn的博客-CSDN博客2.下载QtXlsx源码并编译生成动态链接库,相关文档如下(亲测可用)

Ubuntu QT Xlsx库的安装与使用_IL97的博客-CSDN博客

编译成功后你会得到两个文件夹 include和lib,如下所示:最好看看这里面的生成文件的日期是不是刚刚编译好的时间生成的,否则就代表没有编译成功哈。

3.将 生成的include文件夹、lib文件夹和src文件夹(src文件夹也要,否则会报错)放到自己的项目生成目录中去

步骤如下:

并在.pro文件中动态链接相关库

在项目中使用如下:

 我的项目是导出一个xlsx文件,相关代码如下,感兴趣的小伙伴可以参考一下:

void onExportClicked()
{
    QXlsx::Document xlsx;

    QXlsx::Format formatHead;				//格式
    formatHead.setBorderStyle(QXlsx::Format::BorderThin);
    formatHead.setFont(QFont("微软雅黑"));	//字体
    formatHead.setFontBold(true);			//加粗
    formatHead.setFontSize(10);
    formatHead.setHorizontalAlignment(QXlsx::Format::AlignHCenter);  //对齐方式

    QXlsx::Format formatText;				//格式
    formatText.setBorderStyle(QXlsx::Format::BorderThin);
    formatText.setFont(QFont("微软雅黑"));	//字体
    formatText.setFontSize(10);
    formatText.setHorizontalAlignment(QXlsx::Format::AlignHCenter);  //对齐方式

    xlsx.addSheet("出入库记录");		//添加sheet表
    xlsx.selectSheet("出入库记录");	//选择sheet表

    xlsx.write(1, 1, "序号", formatHead);
    xlsx.setColumnWidth(1, 10);
    xlsx.write(1, 2, "条形码", formatHead);
    xlsx.setColumnWidth(2, 20);
    xlsx.write(1, 3, "出入库类型", formatHead);
    xlsx.setColumnWidth(3, 16);
    xlsx.write(1, 4, "出入库时间", formatHead);
    xlsx.setColumnWidth(4, 18);
    xlsx.write(1, 5, "工单号", formatHead);
    xlsx.setColumnWidth(5, 14);
    xlsx.write(1, 6, "操作人", formatHead);
    xlsx.setColumnWidth(5, 12);
    xlsx.write(1, 7, "操作人工号", formatHead);
    xlsx.setColumnWidth(5, 14);


    for (int i = 0; i < m_ltIORecord.size(); i++)
    {
        int row = i+2;
        IORecord* iorecord = m_ltIORecord[i];
        xlsx.write(row, 1, QString::number(i + 1), formatText);
        xlsx.write(row, 2, iorecord->BAR_CODE, formatText);
        xlsx.write(row, 3, iorecord->IO_TYPE, formatText);
        xlsx.write(row, 4, iorecord->IO_DATETIME.toString("yyyy-MM-dd hh:mm:ss"), formatText);
        xlsx.write(row, 5, iorecord->IO_TASK, formatText);
        xlsx.write(row, 6, iorecord->USER, formatText);
        xlsx.write(row, 7, iorecord->USER_NO, formatText);
    }

    QString filename = QFileDialog::getSaveFileName(this, "文件另存为", "出入库记录.xlsx", "*.xlsx");
    if (!filename.isEmpty())
    {
        if (xlsx.saveAs(filename))
        {
            DialogMessagebox::Instance()->information("提示", "导出成功!", "确定", "");
        }
        else
        {
            DialogMessagebox::Instance()->information("提示", "导出失败!", "确定", "");
        }
    }
}

 最后,成功利用QtXlsx库导出Xlsx文件:

 

 

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值