C/Visual C - Manejar Excel desde C o C++

 
Vista:

Manejar Excel desde C o C++

Publicado por Omar Opazo (1 intervención) el 14/09/2002 18:13:55
Les agradeceria si me pueden ayudar. Necesito abrir, cerrar, manipular datos (leer y ecribir) de una planilla excel desde una aplicacion escrita en C, C++ o Visual C++, ¿alguien me puede ayudar ?.
Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Manipulación de archivos Excel desde C/C++

Publicado por Alejandro (913 intervenciones) el 19/03/2025 21:18:03
Omar, para abrir, cerrar y manipular datos en una hoja de cálculo de Excel desde una aplicación escrita en C, C++ o Visual C++, puedes utilizar varias bibliotecas que facilitan esta tarea. Aquí te presento algunas opciones:

1. LibXL: Esta es una biblioteca comercial que permite leer y escribir archivos Excel (XLS y XLSX) sin necesidad de tener Excel instalado. Es fácil de usar y ofrece una buena documentación. Puedes realizar operaciones como crear, leer, escribir y formatear celdas.

- Ejemplo básico:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "libxl.h"
using namespace libxl;
 
int main() {
    BookHandle book = xlCreateBook(); // Crear un libro
    if (book) {
        SheetHandle sheet = book->addSheet("Hoja1"); // Añadir una hoja
        if (sheet) {
            sheet->writeStr(1, 1, "¡Hola, Excel!"); // Escribir en la celda B2
        }
        book->save("ejemplo.xlsx"); // Guardar el libro
        book->release(); // Liberar el libro
    }
    return 0;
}

2. XlsxWriter: Esta es una biblioteca de C que permite crear archivos XLSX. Es útil si solo necesitas escribir datos en Excel y no necesitas leer archivos existentes.

- Ejemplo básico:
1
2
3
4
5
6
7
8
9
10
11
#include <xlsxwriter.h>
 
int main() {
    lxw_workbook  *workbook  = workbook_new("ejemplo.xlsx");
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
 
    worksheet_write_string(worksheet, 0, 0, "¡Hola, Excel!", NULL); // Escribir en A1
 
    workbook_close(workbook); // Cerrar el libro
    return 0;
}

3. OLE Automation: Si necesitas manipular Excel directamente y tienes Excel instalado, puedes usar OLE Automation para controlar Excel desde tu aplicación. Esto te permite abrir archivos, leer y escribir datos, y realizar otras operaciones.

- Ejemplo básico:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <windows.h>
#include <comdef.h>
#include <iostream>
 
int main() {
    CoInitialize(NULL); // Inicializar COM
    CLSID clsid;
    CLSIDFromProgID(L"Excel.Application", &clsid); // Obtener el CLSID de Excel
    IDispatch *pXlApp;
    CoCreateInstance(clsid, NULL, CLSCTX_ALL, IID_IDispatch, (LPVOID*)&pXlApp); // Crear instancia de Excel
 
    // Aquí puedes manipular Excel (abrir, leer, escribir, etc.)
 
    pXlApp->Release(); // Liberar la instancia
    CoUninitialize(); // Desinicializar COM
 return 0;
}

Recomendaciones:


- LibXL y XlsxWriter son opciones más sencillas si solo necesitas leer y escribir archivos sin depender de Excel.
- Si decides usar OLE Automation, asegúrate de manejar correctamente la inicialización y liberación de recursos.

Espero que esta información te sea útil para manipular archivos de Excel desde tu aplicación en C, C++ o Visual C++.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar