数据导出到Excel
生活随笔
收集整理的這篇文章主要介紹了
数据导出到Excel
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據導出到Excel
開發工具與關鍵技術:Qt Creator、C++作者:何任賢撰寫時間:2020年05月05日 我們在做項目的時候,經常會有要求把表格數據導出到Excel的要求,我呢,就做了一個列子,這個列子不是導出表格的,我只做了單條數據導出,我們表格跟單條就只有循環的這個差別,單條數據導出比較好講,會單條導出就等會表格了,所以我這個列子就是單條導出的。導出Excel需要引入的頭文件#include
//這個頭文件是獲取當前項目路徑用的
#include
而且我們需要在工程文件(.pro)中加上QT+= axcontainer并且右鍵項目執行qmake。然后下面是導出Excel的代碼
//設置導出路徑
QString derivePath = QDir::currentPath() + tr("/test.xlsx");//路徑//創建Excel進程QAxObject *myExcel = new QAxObject("Excel.Application");//工作薄集指針QAxObject *myworks = myExcel->querySubObject("WorkBooks");//添加一個工作簿myworks->dynamicCall("Add");//工作薄指針(獲取當前活動的工作簿)QAxObject *workbook = myExcel->querySubObject("ActiveWorkBook");//獲取電子表格集QAxObject *mysheets = workbook->querySubObject("WorkSheets");//添加一個表格mysheets->dynamicCall("Add");//獲取工作簿中當前活動表格QAxObject *sheet = workbook->querySubObject("ActiveSheet");這以上的代碼是創建一個虛擬的Excel,并且獲取這個虛擬的Excel。這是必須的,別人規定的,大致意思是在內存中創建一個Excel表格,這是有目的的,因為我們都知道內存中交換數據快,更新數據也快。QString str = neirEdit->text();//內容int row = hangEdit->text().toInt();//某行int lie = lieEdit->text().toInt();//某列QAxObject *pRange = sheet->querySubObject("Cells(int,int)",row, lie);
pRange->dynamicCall("Value", QVariant(str));這上面的一段代碼則是把數據存進我們創建的虛擬Excel中。//保存表格workbook->dynamicCall(“SaveAs(const QString&)”, QDir::toNativeSeparators(derivePath));
這上面的一段代碼則是則才是真正的把數據存Excel中。
下面的這些就是把我們創建Excel釋放掉。
//關閉工作簿workbook->dynamicCall("Close(Boolean)",false);//釋放workbookdelete workbook;workbook = NULL;//退出進程myExcel->dynamicCall("Quit(void)");//釋放myExceldelete myExcel;myExcel = NULL;
下面是我這個列子的效果圖
這是列子的布局。
這是導出到Excel表格中的數據。
我們從上面可以知道Excel的行與列是從1開始的所以我們在寫表格循環導出的時候需要注意了。
總結
以上是生活随笔為你收集整理的数据导出到Excel的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 需求文档:没有标准,只有沟通
- 下一篇: Qt 设置系统托盘