这里主要介绍其基本的编程使用方法。
首先我们想到就是对xlsx文件进行读写,因此我们有如下的代码:
int main(){QXlsx::Document xlsx("book1.xlsx");/*打开一个book1的文件*/QXlsx::Format format1;/*设置该单元的样式*/format1.setFontColor(QColor(Qt::red));/*文字为红色*/format1.setPatternBackgroundColor(QColor(152,251,152));/*北京颜色*/format1.setFontSize(15);/*设置字体大小*/format1.setHorizontalAlignment(QXlsx::Format::AlignHCenter);/*横向居中*/format1.setBorderStyle(QXlsx::Format::BorderDashDotDot);/*边框样式*/xlsx.write("A1", "Hello Qt!", format1);/*写入文字,应该刚才设置的样式*/xlsx.write(2, 1, 12345, format1);/*写入文字,应该刚才设置的样式*/QXlsx::Format format2;/*重新设置另一个单元的样式*/format2.setFontBold(true);/*设置加粗*/format2.setFontUnderline(QXlsx::Format::FontUnderlineDouble);/*下双划线*/format2.setFillPattern(QXlsx::Format::PatternLightUp);/*填充方式*/xlsx.write("A4", "=44+33", format2);/*写入文字,应该刚才设置的样式*/xlsx.write("C4", true, format2);xlsx.saveAs("book1.xlsx");/*保存*/QXlsx::Document xlsx2("Book1.xlsx");/*复制book1到book2*/xlsx2.saveAs("Book2.xlsx");return 0;}
其运行效果如下:
接下来我们处理数据的是很多时候需要插入折线图、饼状图等等来图像化的处理数据,因此我们可以可以在原有代码上添加一段代码,使之添加一个sheet而且插入饼状图及其条形图:
#include#include "xlsxdocument.h"#include "xlsxformat.h"#include "xlsxcellrange.h"#include "xlsxchart.h"int main(){QXlsx::Document xlsx("book1.xlsx");/*打开一个book1的文件*/QXlsx::Format format1;/*设置该单元的样式*/format1.setFontColor(QColor(Qt::red));/*文字为红色*/format1.setPatternBackgroundColor(QColor(152,251,152));/*北京颜色*/format1.setFontSize(15);/*设置字体大小*/format1.setHorizontalAlignment(QXlsx::Format::AlignHCenter);/*横向居中*/format1.setBorderStyle(QXlsx::Format::BorderDashDotDot);/*边框样式*/xlsx.write("A1", "Hello Qt!", format1);/*写入文字,应该刚才设置的样式*/xlsx.write(2, 1, 12345, format1);/*写入文字,应该刚才设置的样式*/QXlsx::Format format2;/*重新设置另一个单元的样式*/format2.setFontBold(true);/*设置加粗*/format2.setFontUnderline(QXlsx::Format::FontUnderlineDouble);/*下双划线*/format2.setFillPattern(QXlsx::Format::PatternLightUp);/*填充方式*/xlsx.write("A4", "=44+33", format2);/*写入文字,应该刚才设置的样式*/xlsx.write("C4", true, format2);if(!xlsx.selectSheet("ziv")){/*在当前打开的xlsx文件中,找一个名字为ziv的sheet*/xlsx.addSheet("ziv");//找不到的话就添加一个名为ziv的sheet}for (int i=10; i<20; ++i) {/*写入一串数字*/xlsx.write(i, 1, i*i*i); //A10:A19xlsx.write(i, 2, i*i); //B10:B19xlsx.write(i, 3, i*i-1); //C10:C19}QXlsx::Chart *pieChart = xlsx.insertChart(3, 5, QSize(300, 300));/*在3行5列的位置插入一个图标*/pieChart->setChartType(QXlsx::Chart::CT_Pie);/*插入一个饼形图*/pieChart->addSeries(QXlsx::CellRange("A10:A19"));/*饼形图添加数据*/pieChart->addSeries(QXlsx::CellRange("B10:B19"));pieChart->addSeries(QXlsx::CellRange("C10:C19"));QXlsx::Chart *barChart = xlsx.insertChart(3, 13, QSize(300, 300));/*在3行13列的位置插入一个图标*/barChart->setChartType(QXlsx::Chart::CT_Bar);/*条形图*/barChart->addSeries(QXlsx::CellRange("A10:C19"));/*给条形图加入数据*/xlsx.saveAs("book1.xlsx");/*保存*/QXlsx::Document xlsx2("Book1.xlsx");/*复制book1到book2*/xlsx2.saveAs("Book2.xlsx");return 0;}
上面代码中运行效果如下:
很多时候我们还需要添加图表来美化表格,代码如下:
#include#include#include "xlsxdocument.h"#include "xlsxformat.h"#include "xlsxcellrange.h"#include "xlsxchart.h"int main(){QXlsx::Document xlsx("book1.xlsx");/*打开一个book1的文件*/QXlsx::Format format1;/*设置该单元的样式*/format1.setFontColor(QColor(Qt::red));/*文字为红色*/format1.setPatternBackgroundColor(QColor(152,251,152));/*北京颜色*/format1.setFontSize(15);/*设置字体大小*/format1.setHorizontalAlignment(QXlsx::Format::AlignHCenter);/*横向居中*/format1.setBorderStyle(QXlsx::Format::BorderDashDotDot);/*边框样式*/xlsx.write("A1", "Hello Qt!", format1);/*写入文字,应该刚才设置的样式*/xlsx.write(2, 1, 12345, format1);/*写入文字,应该刚才设置的样式*/QXlsx::Format format2;/*重新设置另一个单元的样式*/format2.setFontBold(true);/*设置加粗*/format2.setFontUnderline(QXlsx::Format::FontUnderlineDouble);/*下双划线*/format2.setFillPattern(QXlsx::Format::PatternLightUp);/*填充方式*/xlsx.write("A4", "=44+33", format2);/*写入文字,应该刚才设置的样式*/xlsx.write("C4", true, format2);if(!xlsx.selectSheet("ziv")){/*在当前打开的xlsx文件中,找一个名字为ziv的sheet*/xlsx.addSheet("ziv");//找不到的话就添加一个名为ziv的sheet}for (int i=10; i<20; ++i) {/*写入一串数字*/xlsx.write(i, 1, i*i*i); //A10:A19xlsx.write(i, 2, i*i); //B10:B19xlsx.write(i, 3, i*i-1); //C10:C19}QXlsx::Chart *pieChart = xlsx.insertChart(3, 5, QSize(300, 300));/*在3行5列的位置插入一个图标*/pieChart->setChartType(QXlsx::Chart::CT_Pie);/*插入一个饼形图*/pieChart->addSeries(QXlsx::CellRange("A10:A19"));/*饼形图添加数据*/pieChart->addSeries(QXlsx::CellRange("B10:B19"));pieChart->addSeries(QXlsx::CellRange("C10:C19"));QXlsx::Chart *barChart = xlsx.insertChart(3, 13, QSize(300, 300));/*在3行13列的位置插入一个图标*/barChart->setChartType(QXlsx::Chart::CT_Bar);/*条形图*/barChart->addSeries(QXlsx::CellRange("A10:C19"));/*给条形图加入数据*/QImage image(40, 100, QImage::Format_RGB32);/*新建一个Qimage,大小40*100*/image.fill(Qt::green);/*填充绿色*/xlsx.insertImage(1, 1, image);/*插入图片*/xlsx.saveAs("book1.xlsx");/*保存*/QXlsx::Document xlsx2("Book1.xlsx");/*复制book1到book2*/xlsx2.saveAs("Book2.xlsx");return 0;}
效果如下:

推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……




还没有评论,来说两句吧...