再Qt中已经有了QAxObject来访问Excel,但访问的是微软的com,只能访问正版的Excl中的 .xls//xlsx ,而且使用起来及其不方便(本人亲测)。

在这里使用QXlsx,能更简单的访问Excel数据,但QXlsx这个类并没有在Qt Creator中,所以需要自己导入。

QXlsx的配置链接(亲测有用):

Qt之QXlsx的使用——完整篇_51CTO博客_qt qxlsx

配置的方式有两种:

第一种:直接在你的编译器上安装Xlsx(需要安装Perl,需要下载QtXlsx源代码)

安装完后在文件中需要添加:

pro文件中添加:

QT +=xlsx

添加头文件:

 #include <QtXlsx/QtXlsx>

创建一个项目:

1.pro文件添加:

2. 添加头文件:

3.构造函数中添加内容:

 3.运行之后打开项目文件:

4.打开该文件:

第二种方式:

直接在项目中添加源代码(只需要下载QtXlsx源代码

1.在项目中创建一个文件夹(存放源代码)

 2.把下载到的QtXlsx源代码复制到该文件

源代码文件的 src文件,复制该文件

 粘贴到项目文件下的Qt_xlsx:

 3.在pro文件中引入源代码:

 具体的解释为:

./Qt_xlsx/src/xlsx/qtxlsx.pri

  • 当前项目下的Qt_xlsx 下的src/xlsx/qtxlsx.pri
  • Qt_xlsx 是我们创建的文件名,后面的就不需要修改

 4.点击左下方的构建,然后在文件中会显示添加的文件:

 5.需要添加头文件:

#include"xlsxdocument.h"

6.在构造函数中添加以下代码:

    QXlsx::Document xlsx;xlsx.write("A1", "Hello xlsx!");xlsx.saveAs("Test.xlsx");

6.运行后打开项目运行文件:

以上就是在Qt Creator中如何添加 Qt xlsx。 

Qt xlsx的具体用法:

Qt xlsx的文档:Qt XLSX |QtXlsx 0.3 (debao.me)

在这里具体介绍一下Excel中的一些名词:

Workbook(工作簿):打开一个Excel后,Excel中的数据会形成工作簿

工作簿中可能会含有多个表

Worksheet(工作表) :获取工作簿中的一个工作表

Cell(单元格):工作表中的一格

Format(格式):单元格中可以设置格式

Document(文档类)

用来处理Excel文件中的内容

常用的函数:

QXlsx::Document  xlsx 创建一个对象
QXlsx::Document  xlsx(QString) 创建并打开指定路径的Excel
Cell::Document::cellAt(int row,int col) 返回指定单元格,如果指定位置没有单元格,则该函数返回 0。
addSheet(name,type) 添加一个新表name,格式为type
copySheet(name1,name2) 创建name2,复制name1
currentSheet() 返回当前的工作表对像
deleteSheet(name) 删除name这张表
insertChart() 插入图表
insertImage() 插入图像
insertSheet(index,name,type) index处插入name表,名程已使用的话返回false
mergeCells() 合并单元格
moveSheet() 移动工作表
renameSheet(old,new) 更换名称

read(x,y)使用坐标

read(A1)使用Excel表的位置

读取表中的数据

注意:Excel的坐标是从1开始

write(x,y,Data)使用坐标

write(A1,Data)使用Excel表的位置

写入数据到指定位置
save() 将当前文档保存到文件系统。如果在构建文档时未指定名称,则将使用默认名称“book1.xlsx”。如果保存成功,则返回 true。
saveAs(path) 保存到指定位置
selectSheet(name) 指定当前的表为name
setColumnWidth() 设置列的宽度
setRowWidget() 设置行高
sheetNames() 返回全部工作表的名称列表
wookbook() 返回工作簿
dimension()         返回包含单元格数据的区域

1.创建一个Qt xlsx对象:

//方法1QXlsx::Document xlsx;//方法2如果要省略QXlsx::using QXlsx::Document;Document xlsx;

2.写入和读取Excel数据

 QXlsx::Document xlsx("Test.xlsx");//打开该Excel文件//写入数据for(int i=1;i<10;i++){for(int j=1;j<10;j++){xlsx.write(i,j,i*j*10);}}//读取数据for(int n=1;n<10;n++){for(int m=1;m<10;m++){qDebug()<<xlsx.read(n,m);}}xlsx.save();//保存文件

输出的数据:

注意存储的数据的类型为QVariant

 3.输出工作列表:

    QXlsx::Document xlsx("Test.xlsx");//打开该Excel文件QStringList list;list=xlsx.sheetNames();//获取工作列表for(QString &data:list){qDebug()<<data;//输出列表}xlsx.selectSheet(tr("Sheet3"));//设置Sheet3为当前列表xlsx.save();//保存文件

4.获取行数和列数:

    QXlsx::Document xlsx(excelName);qDebug()<<xlsx.dimension().rowCount();//行数qDebug()<<xlsx.dimension().columnCount();//列数

 以上就是Qt 对Excel的基本操作。

还有一些功能这里就不列举了:

点击该链接即可查看:Qt Xlsx C++ Classes | QtXlsx 0.3 (debao.me)

其他的操作可以点击下方链接学习:Qt Xlsx使用教程、Qt操作Excel、Qt生成Excel图表、跨平台不依赖Office_超级大洋葱806的博客-CSDN博客_qtxlsx

QXlsx(访问Excel)相关推荐

  1. VB 6.0中如何访问EXCEL 2007及EXCEL 2010

    问题及分析过程 最近一段时间在使用VB 6.0开发一个OFFICE考试系统,理想的情况是支持WINDOWS XP,WINDOWS 7,WINDOWS 8,Office 2003和Office 2010 ...

  2. “万能数据库查询分析器” 5.03发布,访问EXCEL将自动为表名前后加上中括弧

    "万能数据库查询分析器" 5.03发布,访问EXCEL将自动为表名前后加上中括弧 1          引言     中国本土程序员马根峰推出的个人作品----万能数据库查询分析器 ...

  3. java通过桥访问excel_通过jdbc-odbc桥来访问excel文件

    通过jdbc-odbc桥来访问excel文件                                      pcera 说是对文件的操作有点牵强附会,毕竟这是对单一类型的文件具体操作 . ...

  4. MFC通过sql访问excel的方法

    1.首先检查安装的驱动中是否有excel,代码如下: CString CAbcd1Dlg::GetExcelDriver() { TCHAR sBuf[1000], *p=sBuf; WORD sBu ...

  5. php 不能直接访问数据库,PHP能不能像访问呢数据库那样访问Excel?

    PHP能不能像访问呢数据库那样访问Excel? 关注:123  答案:3  手机版 解决时间 2021-02-15 19:08 提问者夢岭杺 2021-02-15 06:49 PHP能不能像访问呢数据 ...

  6. .net 使用OLEDB访问excel

    .net 使用OLEDB访问excel 基本步骤 安装相关的dll,到Microsoft上下载,具体网址为:https://www.microsoft.com/zh-CN/download/detai ...

  7. oleDbCommand访问Excel

    oleDbCommand访问Excel: _oleCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$A2:A5]", _ole ...

  8. QXlsx读写Excel表格

    QXlsx读写Excel表格 1.下载qtxlsxwriter 下载链接 2.将src文件夹下的xlsx放到你的项目中 3.项目文件.pro中添加 include(../xlsx/qtxlsx.pri ...

  9. c访问excel 密码 api_管理EXCEL的5种服务使用渠道

    管理Excel作为一个企业信息化SaaS服务,用户可以在不同的环境下使用针对性的客户端使用相关服务. 目前,提供Excel/WPS插件.Windows版本.微信小程序.安卓APP.网页浏览器.开放AP ...

最新文章

  1. ( Android-源代码分享)
  2. 搞定vim的窗口操作
  3. 揭开知识库问答KB-QA的面纱4·向量建模篇
  4. Chrome不显示OPTIONS请求的解决方法2021版chrome90
  5. python自然语言处理库_Python 自然语言处理(NLP)工具库汇总
  6. js实现侧边栏信息展示效果
  7. sass 混入 (@mixin 与 @include的使用)
  8. VC++ EasyPR车牌识别
  9. 基于MaixPy的摄像头模块---MicroPython图像处理
  10. html页面乱码解决
  11. pl/sql如何使用
  12. 【数据结构导论】考试笔记总结(一)
  13. 音频在计算机里存储形式是什么,如何在录音带上存储任何类型的文件
  14. vue中加载maptalks图标(markers)以及点击事件
  15. 2016虾神封箱:虾神的空间统计书单
  16. 跨境电商如何制定社交媒体营销策略?
  17. 聚苯硫醚的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  18. 漫画 | Code Review快把我逼疯了!
  19. 以数为基,云启健康未来|“对标世界一流管理——走进一心堂暨生命科学行业峰会”圆满落幕
  20. spring 自带的定时器task

热门文章

  1. Tensorflow XLA
  2. 智能在线客服是如何工作的?
  3. 网易新闻详情页排版实现思路
  4. Thinkphp3.2.3安全开发须知
  5. JNA 中 GetProcAddress(HMODULE hmodule, int ordinal) 的正确使用方式。LoadLibrary
  6. 微软E5账号OneDrive无法扩容解决方案(亲测有效)
  7. Excel按列合并相同相邻单元格和拆分单元格
  8. onload和DOMContentLoaded事件
  9. flutter图标按钮_flutter 按钮封装 带图片的按钮,带边框的按钮,纯文字的按钮
  10. 【广度优先搜索】N叉树的层序遍历 | 腐烂的橘子 | 单词接龙 | 最小基因变化 | 打开转盘锁