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
Fórum › C / C++
Export xls, alebo OpenOffice tabulka (je to jedno)
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;
}
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
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žení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
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
PHP alebo SQL prirucka v ceskom alebo slovenskom jazyku — založil ppohoda
Databaze .xls — založil Jakub Doucek
Z *.xls to TStringGrid — založil Budko
Moderátoři diskuze