借鉴参考文献中的内容,并将其封装成一个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)", 1);
if(!pSheet)

通过封装ExcelExporter类,利用QAxObject访问Com组件对象,本文介绍如何在Qt中高效地导出Excel表格,包括设置单元格样式和合并单元格。由于直接操作可能导致程序假死,建议在新线程中执行导出过程。文中提到,传统方法因反复创建Excel子对象导致速度慢,建议手动删除以提高性能。参考文献提供了更多关于Qt读写Excel的优化策略。
最低0.47元/天 解锁文章
1814

被折叠的 条评论
为什么被折叠?



