C/C++ en Excel

Status
Niet open voor verdere reacties.

mulderm

Gebruiker
Lid geworden
2 jul 2004
Berichten
167
Hallo,

Ik ben net begonnen met C en C++ met het pakket Dev-C++.
Nou wil ik bepaalde variabelen en gegevens naar Excel in een sheet brengen.
Is dit mogelijk?

Groeten,

mulderm
 
Dat is normaalgezien wel mogelijk.. maar helemaal niet zo eenvoudig denk ik. Ik heb weinig ervaring met MS-Officeprogramma's (te duur in mijn bescheiden mening)
Maar wat nog relatief eenvoudig is, is om een commaseparated textfile te maken. En ik dacht wel dat Excel die kon importeren.
Het lijkt me wel duidelijk dat je op deze manier veel beperkter bent dan als je effectief rechtstreeks in Excel kan injecteren.

Ik hoop dat anderen hier je er verder mee kunnen helpen, want anders zal het google worden vrees ik...

--Johan
 
Johan,

Hoe moet ik deze csv-file programmeren in C/C++?
Ik heb daarvoor denk ik een header-file nodig?

mulderm
 
Om een csvfile te maken moeten we naar een file schrijven, dit gebeurt via een outputfilestream (#include <fstream>).
Als je een cvs schrijft, schrijf je jouw gegevens rij per rij, waarbij elk kolomeinde door een komma wordt aangegeven.
De tabel
Code:
+------------+------------+
 |  cel 1     |   cel 2   |
+------------+------------+
 |  cel 3     |   cel 4   |
+------------+------------+
heeft als cvs
Code:
cel 1,cel 2
cel 3,cel 4

Een voorbeeldje om naar een file te schrijven:
Code:
#include <fstream>  //om met files te werken
#include <iostream>
using namespace std;

int main()
{
    //een stream openen om te schrijven naar test.txt
    ofstream het_bestand ( "test.txt" , ios::app );
    // naar de file schrijven is gelijkaardig als het gebruik van cout
    het_bestand << "Deze tekst is een test" << endl
                       << "cel 1,cel 2" << endl
                       << "cel 3, cel 4" << endl;
    // het bestand sluiten
    het_bestand.close();
    
    cout << "Er werd geschreven naar test.txt" << endl
           << "Druk op een toets om af te sluiten... ";
    cin.get();
    return 0;
}

Een klein beetje uitleg bij deze argumenten: ofstream het_bestand ( "test.txt" , ios::app );
Het eerste argument moet een string (of een const char*) zijn, deze bevat (het relatieve pad en) de naam van de file die je gaat aanvullen/aanmaken. Op dit moment wordt test.txt dus aangemaakt in dezelfde map als waar jij je programma uitvoert.
Het tweede argument (ios::app) zorgt ervoor dat wanneer het programma een tweede maal loopt, de info achteraan de tekstfile wordt toegevoegd (append). Als je echter wil dat de file iedere keer overschreven wordt, dien je dit argument gewoon weg te laten.

Als de file niet bestaat wordt hij aangemaakt. Dus daar hoef jij je geen zorgen over te maken.

--Johan
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan