效果图:

QT       += core gui axcontainer
CONFIG   += qaxcontainergreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = fastReadExcelInWindows
TEMPLATE = appSOURCES += main.cpp\MainWindow.cpp \ExcelBase.cpp \QVariantListListModel.cppHEADERS  += MainWindow.h \QVariantListListModel.h \ExcelBase.hFORMS    += MainWindow.ui

//读取
void MainWindow::getContents(QTableView **view , QStandardItemModel **model, int sheet_num, QString sheet_name)
{QAxObject *work_sheet = work_book->querySubObject("Sheets(int)", sheet_num);QAxObject *used_range = work_sheet->querySubObject("UsedRange");QAxObject *rows = used_range->querySubObject("Rows");QAxObject *columns = used_range->querySubObject("Columns");int row_start = used_range->property("Row").toInt();  //获取起始行int column_start = used_range->property("Column").toInt();  //获取起始列int row_count = rows->property("Count").toInt();  //获取行数int column_count = columns->property("Count").toInt();  //获取列数(*model) = new QStandardItemModel(row_count-1, column_count);for(int i=row_start; i<=row_count; ++i){for(int j=column_start; j<=column_count; ++j){QAxObject *cell = work_sheet->querySubObject("Cells(int,int)", i, j);//QVariant cell_value = cell->property("Value");  //获取单元格内容QString cell_value = cell->property("Value2").toString();  //获取单元格内容if( i == 1 )(*model)->setHeaderData(j-1, Qt::Horizontal, cell_value);//将表的列名,放入model的列名中else(*model)->setData((*model)->index(i-2, j-1, QModelIndex()), cell_value);}}(*view) = new QTableView;(*view)->verticalHeader()->setVisible(false);(*view)->setEditTriggers(QAbstractItemView::NoEditTriggers);(*view)->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);(*view)->setAttribute(Qt::WA_DeleteOnClose);//设置在view控件close的时候自动delete(*view)->setModel(*model);//将model与view关联(*view)->setWindowIcon(windowIcon());//设置view图标mdiArea->addSubWindow(*view);//将view加入mdiArea,以便view可以成为子窗口(*view)->setWindowTitle(sheet_name);(*view)->show();//将view显示到屏幕}//写入
void MainWindow::on_save_clicked()
{if ( !result_order->text().isEmpty()){QString fileName = QFileDialog::getSaveFileName(this, "保存评估结果", dirPath, "Excel 97-2003 工作簿(*.xls)");fileName.replace("/","\\");QAxObject excel("Excel.Application");QAxObject * workbooks = excel.querySubObject("WorkBooks");workbooks->dynamicCall("Add");   QAxObject * workbook = excel.querySubObject("ActiveWorkBook");QAxObject * work_sheet = workbook->querySubObject("Sheets(int)", 1);QAxObject *cell_1_1 = work_sheet->querySubObject("Cells(int,int)", 1, 1);cell_1_1->setProperty("Value2", "流域综合评价指数");QAxObject *cell_2_1 = work_sheet->querySubObject("Cells(int,int)", 2, 1);cell_2_1->setProperty("Value2", "流域综合评价等级");QAxObject *cell_3_1 = work_sheet->querySubObject("Cells(int,int)", 1, 4);cell_3_1->setProperty("Value2", result_count->text().toStdString().data());QAxObject *cell_2_2 = work_sheet->querySubObject("Cells(int,int)", 2, 4);cell_2_2->setProperty("Value2", result_order->text().toStdString().data());QAxObject *cell_5_1 = work_sheet->querySubObject("Cells(int,int)", 5, 1);cell_5_1->setProperty("Value2", "生态效益指数");QAxObject *cell_6_1 = work_sheet->querySubObject("Cells(int,int)", 6, 1);cell_6_1->setProperty("Value2", "经济效益指数");QAxObject *cell_7_1 = work_sheet->querySubObject("Cells(int,int)", 7, 1);cell_7_1->setProperty("Value2", "社会效益指数");QAxObject *cell_5_3 = work_sheet->querySubObject("Cells(int,int)", 5, 3);cell_5_3->setProperty("Value2", result_data[0]->text().toStdString().data());QAxObject *cell_6_3 = work_sheet->querySubObject("Cells(int,int)", 6, 3);cell_6_3->setProperty("Value2", result_data[2]->text().toStdString().data());QAxObject *cell_7_3 = work_sheet->querySubObject("Cells(int,int)", 7, 3);cell_7_3->setProperty("Value2", result_data[4]->text().toStdString().data());QAxObject *cell_5_4 = work_sheet->querySubObject("Cells(int,int)", 5, 4);cell_5_4->setProperty("Value2", result_data[1]->text().toStdString().data());QAxObject *cell_6_4 = work_sheet->querySubObject("Cells(int,int)", 6, 4);cell_6_4->setProperty("Value2", result_data[3]->text().toStdString().data());QAxObject *cell_7_4 = work_sheet->querySubObject("Cells(int,int)", 7, 4);cell_7_4->setProperty("Value2", result_data[5]->text().toStdString().data());QAxObject *cell_9_1 = work_sheet->querySubObject("Cells(int,int)",  9,  1);cell_9_1->setProperty("Value2",  "植被恢复");QAxObject *cell_10_1 = work_sheet->querySubObject("Cells(int,int)", 10, 1);cell_10_1->setProperty("Value2", "水土保持");  QAxObject *cell_11_1 = work_sheet->querySubObject("Cells(int,int)", 11, 1);cell_11_1->setProperty("Value2", "固碳释氧");QAxObject *cell_12_1 = work_sheet->querySubObject("Cells(int,int)", 12, 1);cell_12_1->setProperty("Value2", "经济收入");QAxObject *cell_13_1 = work_sheet->querySubObject("Cells(int,int)", 13, 1);cell_13_1->setProperty("Value2", "生产效率");QAxObject *cell_14_1 = work_sheet->querySubObject("Cells(int,int)", 14, 1);cell_14_1->setProperty("Value2", "粮食安全");  QAxObject *cell_15_1 = work_sheet->querySubObject("Cells(int,int)", 15, 1);cell_15_1->setProperty("Value2", "社会影响");QAxObject *cell_16_1 = work_sheet->querySubObject("Cells(int,int)", 16, 1);cell_16_1->setProperty("Value2", "产业结构");QAxObject *cell_9_4 = work_sheet->querySubObject("Cells(int,int)",  9,  4);cell_9_4->setProperty("Value2",  itemlabel[0]->text().toStdString().data());QAxObject *cell_10_4 = work_sheet->querySubObject("Cells(int,int)", 10, 4);cell_10_4->setProperty("Value2", itemlabel[1]->text().toStdString().data());QAxObject *cell_11_4 = work_sheet->querySubObject("Cells(int,int)", 11, 4);cell_11_4->setProperty("Value2", itemlabel[2]->text().toStdString().data());QAxObject *cell_12_4 = work_sheet->querySubObject("Cells(int,int)", 12, 4);cell_12_4->setProperty("Value2", itemlabel[3]->text().toStdString().data());QAxObject *cell_13_4 = work_sheet->querySubObject("Cells(int,int)", 13, 4);cell_13_4->setProperty("Value2", itemlabel[4]->text().toStdString().data());QAxObject *cell_14_4 = work_sheet->querySubObject("Cells(int,int)", 14, 4);cell_14_4->setProperty("Value2", itemlabel[5]->text().toStdString().data());QAxObject *cell_15_4 = work_sheet->querySubObject("Cells(int,int)", 15, 4);cell_15_4->setProperty("Value2", itemlabel[6]->text().toStdString().data());QAxObject *cell_16_4 = work_sheet->querySubObject("Cells(int,int)", 16, 4);cell_16_4->setProperty("Value2", itemlabel[7]->text().toStdString().data());workbook->dynamicCall("SaveAs (const QString&,int,const QString&,const QString&,bool,bool)",fileName,56,QString(""),QString(""),false,false);workbook->dynamicCall("Close (Boolean)", false);excel.dynamicCall("Quit (void)");if (!fileName.isEmpty())QMessageBox::information(NULL, "提示", "保存成功!");}else{QMessageBox::information(this, "提示","没有报告结果,不可以导出!");}}

Qt读取/写入Excel数据--QAxObject相关推荐

  1. R语言批量读取写入Excel数据 r导出输出写入excel多个sheet 导出excel 导入 excel 读入excel 表格

    前一段,写过一篇:R语言中写入Excel的不同sheet表格,最近学习了tidyverse的方法,感觉需要总结一下,更新一下知识结构. 本文准备用实际数据,做一下操作: 「批量读取:」 批量读取多个E ...

  2. R语言批量读取写入Excel数据

    本文准备用实际数据,做一下操作: 「批量读取:」 批量读取多个Excel数据 批量读取一个Excel数据的不同表格 「批量写入」 批量写入Excel数据 1,批量写入到不同的Excel中 2,批量写入 ...

  3. C# 创建Excel,读取mdb数据库,写入Excel数据,获取mdb中所有表格名字,选择多个文件

    C# 创建Excel,读取mdb数据库,写入Excel数据,获取mdb中所有表格名字,选择多个文件 1.创建Excel表 使用OleDbCommand类执行SQL语句即可,代码如下 /// <s ...

  4. FME写入Excel数据时写到模板文件指定位置

    在写入Excel数据时写到模板文件指定位置 介绍 本示例对 Excel 写模块参数概述一文进行了扩展.在该示例中,您学习了如何更新模板文件指定的单元格. 使用 FME,您可以重写 RawData 工作 ...

  5. Python读取/写入EXCEL及样式

    xlrd和xlwt是python操作excel的两个库,xlrd用于读取,xlwt用于写入.xlwt无法直接操作xlrd读取的excel数据,需要使用xlutils3将xlrd读取的excel拷贝成x ...

  6. Qt读取Json文件数据

    Qt读取Json文件数据 void TcpServerCfg::initServerCfgList() {serverCfgList.clear();QString name = "./co ...

  7. C#读取写入excel单元格

    c# 读取写入excel单元格(包括对excel的一些基本操作) 以下是一些对excel的一些基本操作 1:工程对excel类库的导入,如:c:\program files\Microsoft off ...

  8. MATLAB-将数据读取/写入excel表格

    读写excel操作 xlsread-读表格 xlswrite-写表格 writecell-将元胞数组写入文件 xlsread-读表格 官方文档 函数调用形式是这样的:[ num, txt, raw ] ...

  9. 读取、写入excel数据

    在实际项目中,不可避免的会操作excel表格.一直以来都是读取excel表格,可今天为了写入excel表格,可是煞费苦心,终于完成,记录下来以便后续使用. 1.读取excel表格的数据 读取excel ...

最新文章

  1. JPush 使用教程
  2. 高德API+Python解决租房问题
  3. 了解下RDF Schema (RDFS)
  4. 新手学习python的方法
  5. IDEA中找不到maven插件Plugin ‘org.apache.tomcat.maven:tomcat7-maven-plugin:2.2‘ not found
  6. datax mysql replace_DataX-MySQL(读写)
  7. CentOS6.6上编译安装httpd2.4
  8. java 代码配置 网络调试助手_java源码:网络调试助手
  9. 你真的会用Jupyter吗?这里有7个进阶功能助你效率翻倍
  10. cmake中添加引用动态链接_C和C++使用对方编译的动态链接库
  11. Biztalk中Host Instance线程控制
  12. 网络信息安全常用术语
  13. 均匀分布 卡方分布_高等数理统计—第一章 统计分布基础
  14. 计算机网络国家标准,计算机网络教室建设标准本标准参考国家标准GB50174并结合金州.doc...
  15. 简单个人网页设计 静态HTML动物主题网页 DW个人网站模板 简单宠物网页作品代码 个人网页制作 个人网页Dreamweaver设计与实现
  16. Linux(Centos 7)使用tcpdump抓取流量包
  17. java clob 读取_java 实现读取clob
  18. java office 集成开发_[转载]Java集成PageOffice在线打开编辑word文件 - Spring Boot
  19. hook(2)Activity启动流程,2021年大厂Android岗面试必问
  20. 用Python脚本能获取Wifi密码么?能。

热门文章

  1. OpenJudge-005雇佣兵(解析)
  2. 微信小游戏SDK,全方位解读
  3. 【技术美术图形部分】纹理基础1.0-纹理管线
  4. 下载最新的百度地图瓦片
  5. maptalks:数据归一化处理与分层设色图层加载
  6. 自定义Android视频播放器 - 切换横竖屏
  7. Matplotlib双y轴+调整图例位置
  8. 大数据面试之新浪面试题
  9. C专家编程 第6章 运动的诗章:运行时数据结构 6.3 操作系统在a.out文件里干了些什么
  10. 在线传输文件的方法有哪些?镭速云帮您领略最快文件传输的攻略!