由于经常用Qt对Excel中的一些数据进行处理,最终综合出一套简单好用的读、写数据方案。
主要代码如下(完整测试项目地址见本文最下方):
bool ExcelManger::Test(QString &path)
{
QAxObject *excel = NULL; //本例中,excel设定为Excel文件的操作对象
QAxObject *workbooks = NULL;
QAxObject *workbook = NULL; //Excel操作对象
excel = new QAxObject("Excel.Application");
excel->dynamicCall("SetVisible(bool)", true); //true 表示操作文件时可见,false表示为不可见
workbooks = excel->querySubObject("WorkBooks");
//————————————————按文件路径打开文件————————————————————
workbook = workbooks->querySubObject("Open(QString&)", path);
// 获取打开的excel文件中所有的工作sheet
QAxObject * worksheets = workbook->querySubObject("WorkSheets");
//—————————————————Excel文件中表的个数:——————————————————
int iWorkSheet = worksheets->property("Count").toInt();
qDebug() << QString("Excel文件中表的个数: %1").arg(QString::number(iWorkSheet));
// ————————————————获取第n个工作表 querySubObject("Item(int)", n);——————————
QAxObject * worksheet = work