借鉴参考文献中的内容,并将其封装成一个ExcelExporter类,除了实现一些基本的写数据的功能,还增加了设置单元格样式、合并单元格的功能。在Qt中使用QAxObject类访问Com组件对象,需要在pro文件中添加下面的内容:
QT +=axcontainer
Excel对象的主要层次结构:
/*!
*新建一个excel表格
*/
bool ExcelExporter::newExcel(const QString &fileName)
{
pApplication = new QAxObject();
bool b = pApplication->setControl("Excel.Application");//连接Excel控件
if(!b)
return false;
pApplication->dynamicCall("SetVisible(bool)", false);//false不显示窗体
pApplication->setProperty("DisplayAlerts", false);//不显示任何警告信息。
pWorkBooks = pApplication->querySubObject("Workbooks");
QFile file(fileName);
if (file.exists())
{
pWorkBook = pWorkBooks->querySubObject("Open(const QString &)", fileName);
}
else
{
pWorkBooks->dynamicCall("Add");
pWorkBook = pApplication->querySubObject("ActiveWorkBook");
}
if(!pWorkBook)
return false;
pSheets = pWorkBook->querySubObject("Sheets");
if(!pSheets)
return false;
pSheet = pSheets->querySubObject("Item(int)",