Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [C]scrivere su foglio excel in c

    ciao a tutti...si può scrivere sulle celle di un foglio excel usando il linguaggio C?? o bisogna per forza passare da visual basic??

  2. #2
    usando il linguaggio C?? o bisogna per forza passare da visual basic??
    Tutto ciò che risulta fattibile in Visual Basic si può fare anche in C, non vale il viceversa...

    Cosa vuoi fare di preciso? Creare un file Excel da zero? Aggiornarne uno esistente (in tal caso devi specificare la versione di Excel utilizzata per crearlo)? Sulle macchine che eseguiranno il tuo programma è installato Office?
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  3. #3
    per ora vorrei fare solo cose semplicissime...tipo che ne so fare un ciclo che mi permetta di riempire una colonna di 32 celle con numeri a caso...quindi immagino dovrò fare una sorta di open su un file excel...solo non so quali funzioni usare e come scrivere nelle celle...
    ovviamente sulla mia macchina c'e office(2007)

  4. #4
    Per scrivere su un file Excel con un programma sviluppato in C hai diverse possibilità:

    1) Studi il formato Excel BIFF e fai tutto a manina (in bocca al lupo!)

    2) Usi la COM Automation (richiede una versione installata di Excel per funzionare)

    3) Ti affidi a librerie di terze parti (spesso sono a pagamento)

    Se sei alle prime armi con la programmazione ti consiglio di dedicare il tuo tempo ad attività più amene...
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  5. #5
    la prima mi sembra un suicidio...la terz nemmeno la consideriamo ....cosa è la COM Automation??

  6. #6
    sarebbero graditissimi esempietti stupidi di qualche riga di codice ....qualsiasi cosa va bene...anche scrivere un helloworld nella cella A1 ...ciao a tutti e grazie 1000

  7. #7
    È una tecnica di automazione basata sulle interfacce COM, non è una passeggiata di salute, soprattutto se affrontata in vanilla C.

    QUI trovi un po' di esempi.

    Esempio minimale:

    codice:
    HRESULT hres;
    CLSID clsid;
    CLSIDFromProgID(L"Excel.Application", &clsid);
    IDispatch *excelApp;
    
    // Start Excel as a COM server in a separate process
    hres = CoCreateInstance(&clsid, 0, CLSCTX_LOCAL_SERVER, IID_IDispatch, (void **)&excelApp);
    
    if(FAILED(hres))
    {
        // error handling
    }
    
    DISPID dispidVisible;
    OLECHAR *propertyName = "Visible";
    hres = excelApp->GetIDsOfNames(IID_NULL, &propertyName, 1, LOCALE_SYSTEM_DEFAULT, &dispidVisible);
    
    if(FAILED(hres))
    {
        // error handling
    }
    
    unsigned returnArg;
    VARIANT varTrue;
    DISPPARAMS params = { &varTrue, 1, 0, 0 };
    
    // set the variant to a boolean true
    varTrue.vt = VT_BOOL;
    varTrue.boolVal = 0xFFFF;
    
    // make the window visible: excelApp.Visible = True
    hres = excelApp->Invoke(dispidVisible, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYPUT, params, 0, 0, &returnArg);
    
    if(FAILED(hres))
    {
        // error handling
    }
    
    // ... use the object
    
    // free the object
    excelApp->Release();
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  8. #8
    grazie 1000 ancora per il tuo tempo...

  9. #9
    Su MSDN (ma non solo) trovi molti articoli sull'automazione COM con MFC (C++), per esempio How to use MFC to automate Excel and create and format a new workbook. Ovviamente dovrai fare riferimento alla documentazione ufficiale per scoprire quali metodi usare per leggere/scrivere file Excel. In C le cose diventano ancora più complicate...

    NB. Ti ricordo che un programma basato sull'Office Automation *richiede* la presenza di Excel per funzionare.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.