Red de conocimiento informático - Problemas con los teléfonos móviles - QT obtiene la posición de la celda de Excel

QT obtiene la posición de la celda de Excel

Qt puede obtener la ubicación de las celdas de Excel a través de las bibliotecas QAxServer y QAxContainer.

El método es: obtener el objeto de aplicación de Excel QaxoObject a través de QAxServer, luego usar QaxoObject para abrir el documento de Excel correspondiente, buscar la hoja de trabajo especificada y leer las celdas en la posición especificada.

Ejemplo:

En archivo cpp.

#¿Incluir? & ltQAxObject & gt

QAxObject? *¿Libro de trabajo? =?NULL

QAxObject? *¿Libro de trabajo? =?NULL

QAxObject? *celda=vacía;

QAxObject? *¿sobresalir? =?Nuevo? QAxObject("Excel. Application"); //Ejecutar el programa Excel

¿Y si? (excel->isNull())? {

QMessageBox::critical(0, "¿Mensaje de error"? "Aplicación EXCEL no encontrada");

Return

}

<; p>excel-& gt;dynamicCall("SetVisible(bool)",? false);

¿Libro de ejercicios? =?excel->query subobject(" WorkBooks ");//Encontrar el objeto de la hoja de trabajo

¿Libro de trabajo? =? Workbook-> querySubObject("Open(QString, QVariant, QVariant)",? File name, 3, true); // Cuando hay dos parámetros, los tres parámetros verdadero y falso son normales, ¿falso? Bloquee el archivo de Excel para que otros programas solo puedan abrirlo en modo de solo lectura. De lo contrario, cuando el programa esté procesando el archivo de Excel y éste se abra externamente, el programa se cerrará de forma anormal.

¿Y si? (!libro de trabajo)? {

QMessageBox::critical(0, "¿Mensaje de error"? "¿Excel? El archivo no existe"); >

¿Objeto QAx? *?Hoja de trabajo? =?Workbook->querySubObject("WorkSheets(int)",?1);//Abra la primera hoja de trabajo.

¿Objeto QAx? *?Ámbito de uso? =?Hoja de trabajo-> query subobject(" rango usado "); //Obtiene el objeto de alcance de la hoja de trabajo.

¿Objeto QAx? *?¿DE ACUERDO? =?rango usado-& gt;subobjeto de consulta(" Filas ");

QAxObject? *?¿Columna? =?rango usado-& gt;subobjeto de consulta(" Columnas ");

int? intRowStart? =?rango usado->Atributo("fila"). toInt();

int? intColStart? =?rango usado->propiedad("columna"). toInt();

int? ¿intCols? =?columna->propiedad("recuento"). toInt();

int? ¿entrefilas? =? fila ->propiedad("recuento").

toInt();

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

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

¿Celular? =?Hoja de trabajo->querySubObject("Celdas(int,int)",?i j?);? //Obtener celda

if(cell->;property("value").type()==QVariant::Double){

qDebug()<QString:: number(cell->Property('value').toDouble(),'f',0);

} ¿Algo más? if(cell->property("value").type()==QVariant::QString){

qDebug()<< cell->property("value" ). toString();

}

}

}

Libro de trabajo->dynamicCall("¿Cerrar? (Booleano)" ,? False);

excel->dynamicCall("¿Salir? (void)");

¿Eliminar? Libro de trabajo;

¿Eliminar? Libro de trabajo;

¿Eliminar? sobresalir