Red de conocimiento informático - Conocimiento informático - ¿Cómo llamar a la API de Excel? Usando VC 6.0...

¿Cómo llamar a la API de Excel? Usando VC 6.0...

Este es un programa que escribí antes, puedes consultarlo. Office aún no está instalado, así que no puedo probarlo.

Puede buscar "Uso de MFC para operar archivos EXCEL" en la Biblioteca Baidu para encontrar información.

_Application app// la aplicación es un objeto _Application.

Libro de ejercicios;

LPDISPATCH lpDisp//Variables de uso frecuente.

If (!app.CreateDispatch("Excel.App"))

{

AfxMessageBox("No se puede crear Dispatch() para Excel);

{

p>

Regresar;

}

//Establecer visible(FALSO);

lpDisp. = app. get workbooks(); //Obtener el puntero IDispatch

ASSERT(LP disp);

Libros adjuntos (LP disp); Puntero IDispatch. p>

COleVariant

covTrue((short)True),

covFalse((short)false),

cov opcional(( long)DISP _E_PARAMNOTFOUND, VT_ERROR);

//Para abrir un libro de trabajo existente, debe proporcionar todos los

// parámetros de 13 funciones miembro abiertas //El siguiente código abre un libro de trabajo y lo agrega al

//objeto Colección

//Necesita modificar su propia ruta y. p>//Workbook.

//

CString strFile = nombre de archivo

lpDisp = Libros / es el libro de trabajo

covOptional. , covOptional, covOptional, covOptional, covOptional,

covOptional, covOptional, covOptional, covOptional, covOptional,

covOptional, cov opcional); // Devuelve el puntero IDispatch del libro de trabajo. /p>

ASSERT(LP disp);

Book. adjuntar despacho(LP disp);

//Obtener la colección de hojas y agregar el puntero IDispatch a su

// objeto de hojas.

lpDisp = libro.

ASSERT(LP disp) ;

Envío de hoja adjunta(LP disp);

Papel largo = papel. GetCount();

archivo de salida char[256];

for(long no = 1; no lt= nSheets no)

{

lpDisp = hoja de trabajo. GetItem(cole variante((short)(no)));

ASSERT(LP disp);

Hojas.

adjuntar despacho(LP disp);

lpDisp = hoja. GetUsedRange();

ASSERT(LP disp);

Rango. adjuntar despacho(LP disp);

/*

Rango r = rango. obtener columnas();

int cc = r. obtener recuento();

r = rango. GetRows();

int RR = r . obtener recuento();

*/

Variable ret = rango. GetValue();

if (ret.vt == VT_EMPTY)

Continuar;

strcpy(archivo de salida, nombre de archivo);

char *p = strchr(outfile,'.');

If (p)

* p = 0;

CString str = outfile

str = " _ ";

str = hoja. GetName();

if (string.find("descripción")==-1 amp;

str.Find("descripción")==-1)

{

str_command[ 0 ]. add(str);

int sign =-1;

ftalkg- gt; write((const char *) amp; sign, 4);

int n = str_command[ 0 ]. GetSize();

ftalk-gt;write((const char *) & n, 4);

strcat(outfile, (LPCSTR) hoja de trabajo. GetName()) ;

strcat(archivo de salida, ".cxx");

//STD:: de la secuencia ar(archivo de salida);

STD:: de la secuencia ar ;

//ar lt(LPCSTR) tabla. GetName() lt; ltSTD::endl;

//Crear SAFEARRAY a partir de la variable ret.

COleSafeArray sa(ret);

SaveAsTalk(ar, sa);

}

}