Export xls, alebo OpenOffice tabulka (je to jedno) – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Export xls, alebo OpenOffice tabulka (je to jedno) – C / C++ – Fórum – Programujte.comExport xls, alebo OpenOffice tabulka (je to jedno) – C / C++ – Fórum – Programujte.com

 

asdf
~ Anonymní uživatel
26 příspěvků
5. 8. 2008   #1
-
0
-

Ahoj potrebujem trochu poradiť.

Potrebujem kniźnicu ktorá mi umožní exportovať dáta môjho programu do tabuľky msoffice alebo openoffice. Nechcem znovuobjavovať koleso a tak hľadám niečo čo by sa na tento účel dalo použiť, ale nemôžem nič nájsť.

Jedinou podmienkou je aby sa to dalo použiť v komerčnom programe a aby to bežalo pod MS Win no mohlo by to by´t multiplatformné.

Nemáte z niećnim podobným skúsenosti?

VĎAKA

Nahlásit jako SPAM
IP: 78.99.211.–
Jura
~ Anonymní uživatel
637 příspěvků
5. 8. 2008   #2
-
0
-

zdravím,

mělo by to jít pomocí COM. Ale teď jsem líný hledat nějaké solidní příklady, tak zkus něco vygooglit,nebo můžeš zkusit pohledat na codeproject.com a codeguru.com

Nahlásit jako SPAM
IP: 85.207.192.–
asdf
~ Anonymní uživatel
26 příspěvků
5. 8. 2008   #3
-
0
-

No neviem asi som blbý, ale nemôžem nič nájsť už pár hodín.

Nahlásit jako SPAM
IP: 78.99.211.–
Jura
~ Anonymní uživatel
637 příspěvků
5. 8. 2008   #4
-
0
-

No, tak jsem ti napsal malý příklad:



// Include standard header files
#include <iostream>
#include <cmath>
#include <tchar.h>
#include <ctime>

// tu cestu si samozrejme zmen jak potrebujes
#import \
"C:\Program Files\Common Files\Microsoft Shared\OFFICE10\mso.dll" \
rename("DocumentProperties", "DocumentPropertiesXL") \
rename("RGB", "RBGXL")

#import \
"C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\vbe6ext.olb"

#import "C:\Program Files\Microsoft Office\OFFICE10\EXCEL.EXE" \
rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") \
rename("DocumentProperties", "DocumentPropertiesXL") \
rename("ReplaceText", "ReplaceTextXL") \
rename("CopyFile", "CopyFileXL") \
exclude("IFont", "IPicture") no_dual_interfaces


int main(int argc, char *argv[])
{
srand(time(0));
CoInitialize(NULL);
try
{
Excel::_ApplicationPtr excel; // ukazatel na tridu aplikace Excel

excel.CreateInstance(_T("Excel.Application")); // vytvoreni instance

// zobrazim excel - samozrejme nemusim
// ale chcu videt vysledek
excel->Visible = true;

// vytvori novy "projekt"
// pokud chcu otevrit stavajici soubor
// pouziju metodu Open (necekane)
Excel::_WorkbookPtr workbook = excel->Workbooks->Add(static_cast<long>(Excel::xlWorksheet));

// ziska aktivni list
// v excel->Sheets->Item jsou ulozeny
// odkazy na jednotlive listy
// tzn. v excel->Sheets->Item[1L]
// je prvni list( indexovano od jednicky)
Excel::_WorksheetPtr pSheet = excel->ActiveSheet;

//ziskam pointer na bunky v aktivnim listu
Excel::RangePtr pRange = pSheet->Cells;

// pojmenuju list
pSheet->Name = _T("Muj list");
// zapisu do bunky A1 retezec X
// pozor indexuje se od 1
// a jsou dulezite ty postfixy L
// Items akceptuje pouze long,
// tedy aspon u mne
pRange->Item[1L][1L] = _T("X");
pRange->Item[1L][2L] = _T("Y");

// zapisu tam nejake data
for( long lRow = 2L; lRow < 10; ++lRow )
{
pRange->Item[lRow][1L] = long(lRow-1);
pRange->Item[lRow][2L] = double(rand()%1000)/100;
}

// ted bych treba mohl vytvorit novy list
// a v nem graf, nicmene je to moc prace
// a ty ses ptal pouze na ukladani


// ulozim
pSheet->SaveAs(_T("pokus.xls"));

// ukoncim excel
excel->Quit();

}
catch(_com_error& e)
{
// nejake osetreni chyby
_bstr_t strErrMsg = e.Description();
return 1;
}

CoUninitialize();
return 0;
}

Nahlásit jako SPAM
IP: 85.207.192.–
asdf
~ Anonymní uživatel
26 příspěvků
8. 8. 2008   #5
-
0
-

Sorry ze som neodpisal skôr ale vcera som nebol cely den doma, takže to este len idem vyskusat. Každopádne dík zatím.

Nahlásit jako SPAM
IP: 91.127.32.–
asdf
~ Anonymní uživatel
26 příspěvků
11. 8. 2008   #6
-
0
-

OK v tomto priklade vlastne natiahnem officovske dllcko do programu.

Otazka znie: je to legalne?? (to čo sa snažím urobiť je komerčný program)

Nahlásit jako SPAM
IP: 91.127.0.–
asdf
~ Anonymní uživatel
26 příspěvků
11. 8. 2008   #7
-
0
-

+ ako mozem exportovat do xls ak uzivatel nema MS office 2007 (existuje nejaky MSO2007 redistributable???)

Nahlásit jako SPAM
IP: 91.127.0.–
Jura
~ Anonymní uživatel
637 příspěvků
12. 8. 2008   #8
-
0
-

To asdf :
Huh, tak to ti nepovím, nicméně já to používám v práci na XML, ale to bude nejspíše něco jiného. Zkus napsat na forum microsoftu, tam ti jiste poradí.

http://forums.microsoft.com/msdn-cs/default.aspx?siteid=39

Nahlásit jako SPAM
IP: 85.207.192.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 51 hostů

Podobná vlákna

OpenOffice — založil Jakub Vojáček

C++ a OpenOffice extension — založil m->29

Databaze .xls — založil Jakub Doucek

Z *.xls to TStringGrid — založil Budko

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý