首页 > 学院 > 开发设计 > 正文

Qt读取Excel数据--QAxObject/QStandModel/QTabView

2019-11-08 19:35:40
字体:
来源:转载
供稿:网友

效果图: 效果图

QT += core gui axcontainerCONFIG += qaxcontainergreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = fastReadExcelInWindowsTEMPLATE = 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显示到屏幕}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表