資源簡介
實現了tableview連接數據庫后導出為excel文件和excel文件的導入

代碼片段和文件信息
#include?“excelengine.h“
#include?
#include?
#include?
#include?
#include?
ExcelEngine::ExcelEngine(Qobject?*parent)?:?Qobject(parent)
{
????????pExcel?????=?NULL;
????????pWorkbooks?=?NULL;
????????pWorkbook??=?NULL;
????????pWorksheet?=?NULL;
????????sXlsFile?????=?““;
????????nRowCount????=?0;
????????nColumnCount?=?0;
????????nStartRow????=?0;
????????nStartColumn?=?0;
????????bIsOpen?????=?false;
????????bIsValid????=?false;
????????bIsANewFile?=?false;
????????bIsSaveAlready?=?false;
//????????HRESULT?r?=?OleInitialize(0);
//????????if?(r?!=?S_OK?&&?r?!=?S_FALSE)
//????????{
//????????????qDebug(“Qt:?Could?not?initialize?OLE?(error?%x)“?(unsigned?int)r);
//????????}
}
ExcelEngine::ExcelEngine(QString?xlsFile)
{
????pExcel?????=?NULL;
????pWorkbooks?=?NULL;
????pWorkbook??=?NULL;
????pWorksheet?=?NULL;
????sXlsFile?????=?xlsFile;
????nRowCount????=?0;
????nColumnCount?=?0;
????nStartRow????=?0;
????nStartColumn?=?0;
????bIsOpen?????=?false;
????bIsValid????=?false;
????bIsANewFile?=?false;
????bIsSaveAlready?=?false;
//????HRESULT?r?=?OleInitialize(0);
//????if?(r?!=?S_OK?&&?r?!=?S_FALSE)
//????{
//????????qDebug(“Qt:?Could?not?initialize?OLE?(error?%x)“?(unsigned?int)r);
//????}
}
ExcelEngine::~ExcelEngine()
{
????if?(?bIsOpen?)
????{
????????//析構前,先保存數據,然后關閉workbook
????????Close();
????}
????//OleUninitialize();
}
/**
??*@brief?打開sXlsFile指定的excel報表
??*@return?true?:?打開成功
??*????????false:?打開失敗
??*/
bool?ExcelEngine::Open(UINT?nSheet?bool?visible)
{
????if(bIsOpen)
????{
????????Close();
????}
????nCurrSheet?=?nSheet;
????bIsVisible?=?visible;
????if(NULL?==?pExcel)
????{
????????pExcel?=?new?QAxobject(“Excel.Application“);
????????if(pExcel)
????????{
????????????bIsValid?=?true;
????????}
????????else
????????{
????????????bIsValid?=?false;
????????????bIsOpen??=?false;
????????????return?bIsOpen;
????????}
????????pExcel->dynamicCall(“SetVisible(bool)“?bIsVisible);
????}
????if(!bIsValid)
????{
????????bIsOpen?=?false;
????????return?bIsOpen;
????}
????if(sXlsFile.isEmpty())
????{
????????bIsOpen?=?false;
????????return?bIsOpen;
????}
????/*如果指向的文件不存在,則需要新建一個*/
????QFile?f(sXlsFile);
????if(!f.exists())
????{
????????bIsANewFile?=?true;
????}
????else
????{
????????bIsANewFile?=?false;
????}
????if(!bIsANewFile)
????{
????????pWorkbooks?=?pExcel->querySubobject(“WorkBooks“);?//獲取工作簿
????????pWorkbook??=?pWorkbooks->querySubobject(“Open(QString?QVariant)“sXlsFileQVariant(0));?//打開xls對應的工作簿
????}
????else
????{
????????pWorkbooks?=?pExcel->querySubobject(“WorkBooks“);??????//獲取工作簿
????????pWorkbooks->dynamicCall(“Add“);????????????????????????//添加一個新的工作薄
????????pWorkbook??=?pExcel->querySubobject(“ActiveWorkBook“);?//新建一個xls
????}
????pWorksheet?=?pWorkbook->querySubobject(“WorkSheets(int)“?nCurrSheet);//打開第一個sheet
????//至此已打開
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????18360??2019-10-31?16:12??導入導出類\excelengine.cpp
?????文件????????2388??2019-10-15?00:23??導入導出類\excelengine.h
- 上一篇:Spark.txt
- 下一篇:手機物流APP的設計與實現
評論
共有 條評論