Qt读取/写入Excel数据--QAxObject
效果图:
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相关推荐
- R语言批量读取写入Excel数据 r导出输出写入excel多个sheet 导出excel 导入 excel 读入excel 表格
前一段,写过一篇:R语言中写入Excel的不同sheet表格,最近学习了tidyverse的方法,感觉需要总结一下,更新一下知识结构. 本文准备用实际数据,做一下操作: 「批量读取:」 批量读取多个E ...
- R语言批量读取写入Excel数据
本文准备用实际数据,做一下操作: 「批量读取:」 批量读取多个Excel数据 批量读取一个Excel数据的不同表格 「批量写入」 批量写入Excel数据 1,批量写入到不同的Excel中 2,批量写入 ...
- C# 创建Excel,读取mdb数据库,写入Excel数据,获取mdb中所有表格名字,选择多个文件
C# 创建Excel,读取mdb数据库,写入Excel数据,获取mdb中所有表格名字,选择多个文件 1.创建Excel表 使用OleDbCommand类执行SQL语句即可,代码如下 /// <s ...
- FME写入Excel数据时写到模板文件指定位置
在写入Excel数据时写到模板文件指定位置 介绍 本示例对 Excel 写模块参数概述一文进行了扩展.在该示例中,您学习了如何更新模板文件指定的单元格. 使用 FME,您可以重写 RawData 工作 ...
- Python读取/写入EXCEL及样式
xlrd和xlwt是python操作excel的两个库,xlrd用于读取,xlwt用于写入.xlwt无法直接操作xlrd读取的excel数据,需要使用xlutils3将xlrd读取的excel拷贝成x ...
- Qt读取Json文件数据
Qt读取Json文件数据 void TcpServerCfg::initServerCfgList() {serverCfgList.clear();QString name = "./co ...
- C#读取写入excel单元格
c# 读取写入excel单元格(包括对excel的一些基本操作) 以下是一些对excel的一些基本操作 1:工程对excel类库的导入,如:c:\program files\Microsoft off ...
- MATLAB-将数据读取/写入excel表格
读写excel操作 xlsread-读表格 xlswrite-写表格 writecell-将元胞数组写入文件 xlsread-读表格 官方文档 函数调用形式是这样的:[ num, txt, raw ] ...
- 读取、写入excel数据
在实际项目中,不可避免的会操作excel表格.一直以来都是读取excel表格,可今天为了写入excel表格,可是煞费苦心,终于完成,记录下来以便后续使用. 1.读取excel表格的数据 读取excel ...
最新文章
- JPush 使用教程
- 高德API+Python解决租房问题
- 了解下RDF Schema (RDFS)
- 新手学习python的方法
- IDEA中找不到maven插件Plugin ‘org.apache.tomcat.maven:tomcat7-maven-plugin:2.2‘ not found
- datax mysql replace_DataX-MySQL(读写)
- CentOS6.6上编译安装httpd2.4
- java 代码配置 网络调试助手_java源码:网络调试助手
- 你真的会用Jupyter吗?这里有7个进阶功能助你效率翻倍
- cmake中添加引用动态链接_C和C++使用对方编译的动态链接库
- Biztalk中Host Instance线程控制
- 网络信息安全常用术语
- 均匀分布 卡方分布_高等数理统计—第一章 统计分布基础
- 计算机网络国家标准,计算机网络教室建设标准本标准参考国家标准GB50174并结合金州.doc...
- 简单个人网页设计 静态HTML动物主题网页 DW个人网站模板 简单宠物网页作品代码 个人网页制作 个人网页Dreamweaver设计与实现
- Linux(Centos 7)使用tcpdump抓取流量包
- java clob 读取_java 实现读取clob
- java office 集成开发_[转载]Java集成PageOffice在线打开编辑word文件 - Spring Boot
- hook(2)Activity启动流程,2021年大厂Android岗面试必问
- 用Python脚本能获取Wifi密码么?能。