QtXlsx 读写 excel

发布时间:2023-10-17 12:30

Qt 之 QAxObject 读写 excel
如何配置 QtXlsx 的两种方法


要使用QtXlsx ,需要引入这个模块,不然是用不了的,引入方法,在工程 pro 文件中加入 QT += xlsx 即可

#include 
#include 

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    //如果需要修改已存在的文件,必须在定义对象的时候指定文件名
    QXlsx::Document xlsx("book1.xlsx");
    //单元格样式
    QXlsx::Format format1;
    //红色文字
    format1.setFontColor(QColor(Qt::green));
    //背景色
    format1.setPatternBackgroundColor(QColor(Qt::red));
    //字体大小
    format1.setFontSize(15);
    //水平居中
    format1.setHorizontalAlignment(QXlsx::Format::AlignHCenter);
    //边框样式
    format1.setBorderStyle(QXlsx::Format::BorderDashDotDot);
    //写入文字,使用 format1 定义的样式
    xlsx.write("A1", "Hello", format1);
    xlsx.write("B1", "Qt", format1);

    //设置另一种样式
    QXlsx::Format format2;
    //加粗
    format2.setFontBold(true);
    //双下划线
    format2.setFontUnderline(QXlsx::Format::FontUnderlineDouble);
    //填充
    format2.setFillPattern(QXlsx::Format::PatternLightUp);
    //使用 format2 样式写入文字
    xlsx.write("D5", "=44+33", format2);
    xlsx.write("B3", true, format2);

    //选择表格 Sheet2,如果不存在,则添加
    if(!xlsx.selectSheet("Sheet2")){
        xlsx.addSheet("Sheet2");
    }

    //写入数据,表格行列都是从1 开始,0,0分别是行首列首
    for (int i=1; i<20; ++i) {
        xlsx.write(i, 1, i);//A1:A19
        xlsx.write(i, 2, i*i);//B1:B19
        xlsx.write(i, 3, i*i*i);//C1:C19
    }
    //在 E:5 插入一个 300*300 的图表
    QXlsx::Chart *pieChart = xlsx.insertChart(5, 5, QSize(300, 300));
    //设置图标类型
    pieChart->setChartType(QXlsx::Chart::CT_Line);
    //使用刚才添加的数据作为数据源
    pieChart->addSeries(QXlsx::CellRange("A1:A19"));
    pieChart->addSeries(QXlsx::CellRange("B10:B19"));
    pieChart->addSeries(QXlsx::CellRange("C10:C19"));

    //新建一个大小为 40*100 的 image
    QImage image(40, 100, QImage::Format_RGB32);
    //填充红色
    image.fill(Qt::red);
    //插入图片
    xlsx.insertImage(25, 5, image);

    //打印最后一行,需要往后面追加数据的这个非常有用
    qDebug()<< "row:"<< xlsx.dimension().lastRow();

    //保存
    xlsx.save();

    return 0;
}

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号