当前位置: 首页 > news >正文

厚街网站仿做内江网站建设新闻

厚街网站仿做,内江网站建设新闻,房地产政策,wordpress软件商城1.简介 一直以来#xff0c;都想学习一下C/C如何操作excel表#xff0c;在网上调研了一下#xff0c;觉得使用C/C去操作很麻烦#xff0c;遂转向QT这边#xff1b;QT有一个自带的类QAxObject#xff0c;可以使用他去操作#xff0c;但随着了解的深入#xff0c;觉得他…1.简介 一直以来都想学习一下C/C如何操作excel表在网上调研了一下觉得使用C/C去操作很麻烦遂转向QT这边QT有一个自带的类QAxObject可以使用他去操作但随着了解的深入觉得他并不是很好有很多其他缺陷(例如必须电脑安装了办公软件才可以进行操作等)所以继续调研终于找到了QT的一个第三方库可以很好的实现QtXlsx.    Github下载https://github.com/dbzhang800/QtXlsxWriter 官方文档http://qtxlsx.debao.me/ 在Github下载后可以直接添加到QtCreator项目中也可以编译成lib库后再添加到VS中去使用。 2、下载QtXlsx 点击链接进入Github下载 下载解压后得到如下文件 二、QtXlsx源码嵌入QTCreator中使用 新建一个QTCreator窗体项目 将上图src文件夹拷贝到该项目路径中 之后双击项目中的.pro文件 将如下代码拷贝到.pro文件中 include(src/xlsx/qtxlsx.pri) Ctrl s 保存一下就可以把QtXlsx源码模块加载进来啦 可以在项目构造函数中添加如下代码进行测试 #include xlsxdocument.h #include xlsxchartsheet.h #include xlsxcellrange.h #include xlsxchart.h #include xlsxrichstring.h #include xlsxworkbook.hQXlsx::Document xlsx; xlsx.write(1, 2, Hello Qt!); xlsx.write(2, 2, QString::fromLocal8Bit(中文)); xlsx.saveAs(Text.xlsx); 编译运行后就可以在项目路径看到程序创建的Text.xlsx文件打开后就可以看到写入的 Hello Qt!和中文. 三、QtXlsx源码编译成为.lib库使用 1. 下载安装Perl 下载安装Perl 下载链接Strawberry Perl for Windows 注意这个是一定要下载安装的否则编译lib库会编译失败  下载后默认安装即可 2. 编译QtXlsx 打开下载的QtXlsx文件夹双击打开.pro 根据自己安装的vs版本选择相应的msvc编译 打开后直接点击编译 编译完成后就可以在相应路径找到编译好的lib库 3. 在vs中使用 新建vsQT项目将include文件夹和Qt5Xlsxd.dll和Qt5Xlsxd.lib拷贝到项目路径中 将QtXlsxWriter-master文件夹整个拷贝到项目路径中 拷贝之后项目路径文件下图方框中的就是我们需要拷贝的文件 右键项目 - 属性 - C/C - 常规 - 附加包含目录把头文件路径添加进来 右键项目 - 属性 - 链接器 - 输入 - 附加依赖项添加Qt5Xlsxd.lib 之后可以加入头文件 #include xlsxdocument.h #include xlsxchartsheet.h #include xlsxcellrange.h #include xlsxchart.h #include xlsxrichstring.h #include xlsxworkbook.h 在构造函数中加入代码 QXlsx::Document xlsx;xlsx.write(1, 2, Hello Qt!);xlsx.write(2, 2, QString::fromLocal8Bit(中文));xlsx.saveAs(Text.xlsx); 编译运行不出意外的话 在项目路径会一个名为Text.xlsx的文件双击打开 数据也已经写入测试成功  四、QtXlsx 1. 知识点 a. 定义 QXlsx::Document xlsx;QXlsx::Document xlsx(Text.xlsx); b. 往单元格中写入数据 writexlsx.write(2, 2, 中文);         参数一是行参数二是列参数三是数据xlsx.write(C3, C3);        参数一是对应单元格名字参数二是数据 c. 设置行高 setRowHeightxlsx.setRowHeight(4, 30);        设置第四行高度为30 d. 设置列宽 setColumnWidthxlsx.setColumnWidth(3, 50);         设置第三列宽度为50 e. 设置单元格样式 QXlsx::Format format;format.setFontColor(Qt::red);                  // 设置字体颜色为红色format.setFontBold(true);                         // 设置加粗format.setFontSize(30);                            // 设置字体大小format.setFontItalic(true);                          // 设置倾斜format.setFontName(楷体);                     // 设置字体format.setPatternBackgroundColor(QColor(100, 200, 100));         // 设置单元格背景颜色format.setHorizontalAlignment(QXlsx::Format::AlignHCenter);      // 设置水平居中更多参考enum HorizontalAlignment枚举format.setVerticalAlignment(QXlsx::Format::AlignVCenter);           // 设置垂直居中format.setBorderColor(QColor(50, 50, 50));                                    // 设置边框颜色format.setFontUnderline(QXlsx::Format::FontUnderlineDouble);    // 设置双下划线更多参考enum FontUnderline枚举format.setFontUnderline(QXlsx::Format::FontUnderlineSingle);      // 设置单下划线format.setFillPattern(QXlsx::Format::PatternLightUp);                     // 填充方式更多参考enum FillPattern枚举xlsx.write(C4, 红色|加粗|30, format);        作为第三个参数 f. 设置单元格方框 setBorderStyleformat.setBorderStyle(QXlsx::Format::BorderThin);        更多参考enum BorderStyle枚举 g. 合并单元格 mergeCellsxlsx.mergeCells(C4:E6);        参数指定那个单元格区间 h. 取消合并 unmergeCellsxlsx.unmergeCells(C4:E6);        参数指定的单元格区间一定是要已经合并的否则打开xlsx文件报错 i. 读取单元格中的数据 readQString str1 xlsx.read(1, 1).toString();        指定行列获取QString str2 xlsx.read(B2).toString();        指定单元格名字获取 j. 获得单元格对象 cellAtQXlsx::Cell *cell xlsx.cellAt(C4);                获取到的是指针对象QXlsx::Cell *cell xlsx.cellAt(1, 1);cell-value();        可以通过value()函数获取单元格中的值 k. 添加工作表 addSheetxlsx.addSheet(sheet_2);        添加这一张名为“sheet_2”的工作表 l. 工作表重命名 renameSheetxlsx.workbook()-renameSheet(1, sheet_3);        将索引为1(也就是第二张)的工作表命名为“sheet_3” m. 选择当前工作表 selectSheetxlsx.selectSheet(sheet_3);        选择名为“sheet_3”的工作表为当前xlsx工作表 n. 获得所有工作表的名字 sheetNames QStringList sheetList xlsx.sheetNames();        获取返回的是一个字符串链表 o. 获取工作簿对象 workbookQXlsx::Workbook *workBook xlsx.workbook(); p. 获取当前工作簿的第一张sheet工作表 QXlsx::Worksheet *workSheet static_castQXlsx::Worksheet*(workBook-sheet(0)); q. 获取当前sheet表所使用到的行数 int row workSheet-dimension().rowCount(); r. 获取当前sheet表所使用到的列数 int colum workSheet-dimension().columnCount(); s. 遍历sheet表中有数据的单元格 for (int i 0; i row; i) { for (int j 0; j colum; j) { // 获取单元格 QXlsx::Cell *cell workSheet-cellAt(i, j); // 读取单元格 if (cell) { qDebug() ( i , j )\t cell-value().toString().trimmed(); // trimmed 去除字符串两侧的空格 } } } t. 删除单元格数据 xlsx.write(G5, );        直接重新设置为空即可 u. 修改单元格数据 xlsx.write(G6, 修改);        重新对单元格写入数据即可 v. 保存 saveAsxlsx.saveAs(Text.xlsx);        初始化xlsx对象时没有指定excel文件那么保存时使用这个savexlsx.save();        初始化xlsx对象时指定了excel文件那么保存时使用这个 w. 设置单元格中字符串不同字体颜色 RichString QXlsx::Document xlsx(Text.xlsx); QXlsx::Format blue; // 设置字体颜色 blue.setFontColor(Qt::blue); QXlsx::Format red; red.setFontColor(Qt::red); red.setFontSize(20); // 设置字体大小 QXlsx::Format bold; bold.setFontBold(true); // 设置字体加粗 QXlsx::RichString rich; rich.addFragment(test, blue); rich.addFragment(QT, red); rich.addFragment(中文, bold); xlsx.write(C3, rich); xlsx.save(); x. 给单元格命名 xlsx.defineName(Cell_1, Sheet1!$A$1:$A$10);    // A1-A10命名为Cell_1 xlsx.defineName(Cell_2, Sheet1!$B$1:$B$10, 这是描述信息);  // B1-B10命名为Cell_2 y. 赋值 xlsx.defineName(Factor, 0.5);         // 将0.5赋值给Factor相当于变量赋值一样我们就可以使用这个变量了 z. 使用公式 xlsx.write(11, 1, SUM(Cell_1));  // 计算A1-A10数据总和并写入(11,1)单元格中 xlsx.write(15, 1, SUM($A$1:$A$10));  // 计算A1-A10数据总和并写入(15,1)单元格中 使用公式和变量 xlsx.write(12, 1, SUM(Cell_1)*Factor);   // 计算A1-A10数据总和再乘以0.5并写入(12,1)单元格中 xlsx.write(16, 1, SUM($A$1:$A$10)*Factor); // 计算A1-A10数据总和再乘以0.5并写入(16,1)单元格中 xlsx.write(13, 2, SUM($B$1:B$10)*0.1);    // B1 - B10 计算总和后乘以0.1 五、QtXlsx知识点补充 1.QStringList sheetNames() const 2.bool addSheet(const QString name QString(), AbstractSheet::SheetType type AbstractSheet::ST_WorkSheet) 3.bool insertSheet(int index, const QString name QString(), AbstractSheet::SheetType type AbstractSheet::ST_WorkSheet) 4.bool renameSheet(const QString oldName, const QString newName) 5.bool moveSheet(const QString srcName, int distIndex) 6.bool deleteSheet(const QString name) 7.AbstractSheet *Document::sheet(const QString sheetName) const 8.AbstractSheet::SheetState AbstractSheet::sheetState() const 9.void AbstractSheet::setSheetState(SheetState state) 10.bool AbstractSheet::isHidden() const 11.bool AbstractSheet::isVisible() const 12.void AbstractSheet::setHidden(bool hidden) 13.void AbstractSheet::setVisible(bool visible)\ 14.Chart *Document::insertChart(int row, int col, const QSize size) 15.void Chart::setChartType(ChartType type) 16.void Chart::addSeries(const CellRange range, AbstractSheet *sheet, bool headerH, bool headerV, bool swapHeaders) 17.void Chart::setChartLegend(Chart::ChartAxisPos legendPos, bool overlay) 18.void Chart::setChartTitle(QString strchartTitle) 19.void Chart::setGridlinesEnable(bool majorGridlinesEnable, bool minorGridlinesEnable)   20.int Document::insertImage(int row, int column, const QImage image) 21.uint Document::getImageCount() 22.bool Document::getImage(int imageIndex, QImage img) 23.bool Document::getImage(int row, int col, QImage img) 不错的连接https://blog.csdn.net/qq_43627907/category_11756312.html​​​​​​​
http://www.w-s-a.com/news/436935/

相关文章:

  • 安阳市哪里做网站建设网站流量怎么赚钱
  • 网站开发与优化课程总结软件班级网站建设
  • py网站开发wordpress 公司网站 模板 下载
  • 长春城乡建设部网站首页英文网站推广服务
  • wordpress实训上海整站seo
  • 福建自己建设网站义乌市企推网络科技有限公司
  • 宁波优化网站哪家好织梦网站地图怎么做
  • 怎么在自己的网站加关键词烟台企业网站建设
  • 中山网站建设界面设计职业技能等级证书
  • 做网站首页多少钱免费版企业邮箱注册
  • ppp模式在网站建设的南昌专业做网站公司哪家好
  • 泰安网站建设制作电话号码百度sem竞价托管公司
  • 苏网站建设网页设计和网页美工
  • 跨境电商平台网站广州地铁站路线图
  • 吉林省交通建设集团有限公司网站企业网站推广的策略有哪些
  • 网站内链怎么做更好郑州网站建设哪家便宜
  • 建设大型购物网站运城哪里做网站
  • php企业网站通讯录管理系统做网站在线支付系统多少钱?
  • 怎么区分用vs和dw做的网站贝贝网网站开发背景
  • 无锡网站建设制作建设信息网查询
  • 彩票系统网站开发建设人力资源网官网
  • 有专门下载地图做方案的网站吗网站建设平台计划书
  • 网站闭站保护10个著名摄影网站
  • 安徽省建设工程信息网官网首页网站关键词排名优化工具
  • 深圳网站建设 百业网站专题教程
  • 公司seo是指什么意思如何来做网站优化
  • 化妆品网站建设平台的分析湖南网站搜索排名优化电话
  • 织梦网站修改教程视频教程管理类网站开发价格
  • 如何让新网站快速收录企业建站的作用是什么
  • 在线制作简历的网站做的最好的微电影网站