當前位置:編程學習大全網 - 編程語言 - QT獲取excel單元格位置

QT獲取excel單元格位置

Qt可以通過QAxServer和QAxContainer庫獲取excel單元格的位置。

方法是:通過QAxServer獲取excel應用對象QaxoObject,然後用QaxoObject打開對應的Excel文檔,找到指定的工作表,從中讀取指定位置的單元格。

示例:

在cpp文件中。

#包含?& ltQAxObject & gt

QAxObject?*工作簿?=?NULL

QAxObject?*工作簿?=?NULL

QAxObject?*單元格=空;

QAxObject?*excel?=?新的?QAxObject("Excel。應用”);//運行excel程序

如果?(excel-& gt;isNull())?{

QMessageBox::critical(0,“錯誤信息”?"找不到EXCEL應用程序");

返回;

}

excel-& gt;dynamicCall("SetVisible(bool)",?假);

練習冊?=?excel-& gt;query subobject(" WorkBooks ");//找到工作表對象

工作簿?=?工作簿-& gt;querySubObject("Open(QString,QVariant,QVariant)",?文件名,3,真);//當有兩個參數時,三個參數true和false都是正常的,false?鎖定excel文件,其他程序只能以只讀方式打開。否則,程序在處理excel文件時,在外部打開excel,程序會異常退出。

如果?(!工作簿)?{

QMessageBox::critical(0,“錯誤信息”?“excel?文件不存在”);

返回;

}

QAxObject?*?工作表?=?工作簿-& gt;querySubObject("WorkSheets(int)",?1);//打開第壹張工作表。

QAxObject?*?使用範圍?=?工作表-& gt;query subobject(" used range ");//獲取工作表的scope對象。

QAxObject?*?行?=?used range-& gt;query subobject(" Rows ");

QAxObject?*?專欄?=?used range-& gt;query subobject(" Columns ");

int?intRowStart?=?used range-& gt;屬性(“行”)。toInt();

int?intColStart?=?used range-& gt;屬性(“列”)。toInt();

int?intCols?=?列-& gt;屬性(“計數”)。toInt();

int?intRows?=?行-& gt;屬性(“計數”)。toInt();

for(int?i = intRowstsrt我?& ltintRowStart?+?intRowsi++){

for(j=intColStart?;j & ltintColStrt+intCols;j++){

細胞?=?工作表-& gt;querySubObject("Cells(int,int)",?我j?);?//獲取單元格

if(單元格->;財產(“價值”)。type()==QVariant::Double){

qDebug()& lt;& ltQString::number(單元格-& gt;財產(“價值”)。toDouble(),' f ',0);

}別的?if(單元格->;財產(“價值”)。type()==QVariant::QString){

qDebug()& lt;& lt單元格->;財產(“價值”)。toString();

}

}

}

工作簿-& gt;dynamicCall("Close?(布爾)",?假);

excel-& gt;dynamicCall("退出?(void)”);

刪除?工作簿;

刪除?工作簿;

刪除?excel

  • 上一篇:求壹篇C++方面的論文
  • 下一篇:C語言編程中生成隨機數的初級教程
  • copyright 2024編程學習大全網