Avatar billede maagen Nybegynder
13. maj 2000 - 01:36 Der er 7 kommentarer og
2 løsninger

Hvordan får jeg et c++ program til at udskrive til et excel regneark?

Jeg skal have lavet et c++ program der kan udskrive data til enten et excel regneark, eller en access database. Det vigtigste er at det bliver udskrevet på en sådan måde at man uden videre kan åbne filerne. Programmet skal bruges af folk som har forholdsvis ringe edbindsigt og det kan derfor ikke forventes at de kan finde ud af så meget.
Avatar billede erikjacobsen Ekspert
13. maj 2000 - 06:55 #1
Jeg har også haft brug for at generere et Excel-regneark, og et med formler og lidt
simpel formattering, dvs. så en kommasepareret fil ikke var nok.

Der er et "standard"-format, der hedder SYLK (sikke et navn), med extension: .slk

Prøv at tage et regneark, og gem det i dette format. Så kan du se, at det er
rent tekstbaseret, med et par linier pr. celle + en header. Jeg har ikke nogen
formel beskrivelse af det, og jeg har simpelthen gættet mig frem, når jeg skulle
skrive tilsvarende linier i mine programmer.

Så vidt jeg husker kan man skrive tal og formler i felterne, samt sætte streger
rundt om en celle, valgfrit i top, bund, venstre og højre side - med én tykkelse.
Der er muligvis også en måde at lave gråskravering på.

Sidste gang jeg havde fingre i dette var et PHP-program, der skulle udtrække
data fra en database på en webserver, og aflevere dette direkte i Excel, når
brugeren trykkede på en knap. Desværre må du ikke se koden.
Avatar billede jchris10 Nybegynder
15. maj 2000 - 08:27 #2
Jeg har ikke prøvet det fra c++, men fra delphi; alle officeprogrammerne ( word, excel og access) understøtter COM. Man kan bruge programmet som COM-server, og derved sætte ting og sager ind, udskrive osv. Prøv at kikke i hjælpen for at finde ud af, hvordan COM virker i C++.

/Jan
Avatar billede soepro Nybegynder
15. maj 2000 - 08:51 #3
Der findes et tredie format der kan anvendes, som jeg selv har brugt med held. Formatet er mere simpelt end SYLK, idet man f.eks. ikke kan formatere indholdet af de forskellige celler og det understøtter også kun et ark pr. mappe.

Formatet er:
TABLE
0,1
"<Navn>"
VECTORS
0,<Antal rækker>
""
TUPLES
0,<Antal kolonner>
""
DATA
0,0
""
-1,0
BOT
1,0
"<Overskrift kolonne 1>"
1,0
:
"<Overskrift kolonne n"
-1,0
BOT

Herefter for hver enkelt celle i KOLONNEN:
1,0
"<Alfanumerisk data>"
eller
0,<Numerisk data inkl. komma osv.>
V

i slut af hver række:
-1,0
BOT

efter alle rækker
-1,0
EOD

Filen for et lille ark med 3 kolonner og 5 rækker (inkl. overksirfter) ser så sådan her ud:
TABLE
0,1
"EXCEL"
VECTORS
0,5
""
TUPLES
0,3
""
DATA
0,0
""
-1,0
BOT
1,0
"Kolonne 1 (Tekst n)"
1,0
"Kolonne 2 (Numerisk = n)"
1,0
"Kolonne 3 (Numerisk = n,n)"
-1,0
BOT
1,0
"Tekst 1"
0,1
V
0,1,1
V
-1,0
BOT
1,0
"Tekst 2"
0,2
V
0,2,2
V
-1,0
BOT
1,0
"Tekst 3"
0,3
V
0,3,3
V
-1,0
BOT
1,0
"Tekst 4"
0,4
V
0,4,4
V
-1,0
EOD
Avatar billede maagen Nybegynder
27. maj 2000 - 14:07 #4
soepro >>

Hvad er det for en tabel - altså hvad skal endelsen på filnavnet være?

myfile.???

Det ser ellers meget fornuftigt ud!
Avatar billede maagen Nybegynder
03. august 2000 - 09:35 #5
jchris >> Beklager - det var ikke lige det jeg var ude efter.

erikjacobsen >> Sylk er ok, men lidt kompliceret.

soepro >> Det virker sq - men lige en gang til - hvad er den korrekte extension på filnavnene? myfile.???
Avatar billede erikjacobsen Ekspert
03. august 2000 - 12:51 #6
soepro>> Nu spørgsmålet dukker op igen... Kan dit format klare formler i regnearket? I
dit eksempel har du kun anført værdier...  SYLK kan fint klare formler
Avatar billede soepro Nybegynder
14. august 2000 - 12:41 #7
Jeg er sikker på at det også kan klare formler, men jeg har ikke prøvet. Det korrekt endelse på formatet er .DIF. (Data-Interchange-Format - jeg tror det er lotus der oprindeligt har defineret det.)
Avatar billede erikjacobsen Ekspert
14. august 2000 - 12:43 #8
Fint nok soepro - det må jeg prøve engang. Men ud over formler, kan SYLK også klare
simpel formattering, f.eks. streger på kasserne. Kan .dif også det?  Nej, du behøver ikke
undersøge det, men hvis du lige står og ved det...
Avatar billede nixon Juniormester
07. november 2002 - 13:36 #9
Desværre kan .DIF ikke indeholde diagrammer :( ... findes der et format der kan, og som stadigvæk er lige så simpelt i opbygning som DIF ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester