[OLE Excel] zapisywanie pliku
Ostatnio zmodyfikowano 2013-04-16 13:59
Antheramis Temat założony przez niniejszego użytkownika |
[OLE Excel] zapisywanie pliku » 2013-04-12 11:17:43 Cześć
Niżej mam fragment kodu programu z którym się nieco męczę. Praca na samym Excelu nie sprawia mi problemu, ale chciałbym otworzyć plik Baza.xls i zapisać go np pod nazwą abc.xls. Zaznaczam, że ważne dla mnie jest by Baza.xls nadal byłą w tym samym folderze.
Nie chodzi mi o bazę danych - mam do przerobienia około 1400 exceli i do szczęścia brakuje mi wiedzy jak zapisać zmieniony plik excela pod inną nazwą niż się go otworzyło. Dziękuje z góry za pomoc.
CApplication oExcel; COleException e; COleVariant covOptional( DISP_E_PARAMNOTFOUND, VT_ERROR ); COleVariant covTrue(( short ) TRUE ), covFalse(( short ) FALSE );
if( !oExcel.CreateDispatch( L"Excel.Application", & e ) ) { e.ReportError(); return; } oExcel.put_Visible( TRUE );
CWorkbooks oBooks = oExcel.get_Workbooks(); CWorkbook oBook = oBooks._Open( L"d:\\zsrk\\baza.xls", covOptional, covFalse, covOptional, covOptional, covOptional, covTrue, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional );
CWorksheets oSheets = oBook.get_Worksheets(); CWorksheet oSheet = oSheets.get_Item( COleVariant(( short ) 1 ) ); CRange oRange = oSheet.get_Cells(); CFont0 font;
COleVariant nip; char * bufNIP[ 50 ]; CString tmp_nip = L" ABC "; CString t; CString p = L"P"; std::string * c; CString l_JG = L"3001";
tmp_nip = oRange.get_Item( COleVariant(( short ) 2 ), COleVariant(( short ) 32 ) ); t = tmp_nip.GetString(); tmp_nip = l_JG.Left( 3 ) + L"-" + l_JG.Right( 1 ) + t.Right( 8 );
oRange.put_Item( COleVariant(( short ) 2 ), COleVariant(( short ) 32 ), COleVariant(( CString ) tmp_nip.GetString() ) );
oBook.Close( covTrue, COleVariant( L"D:\\zsrk\\abc.xls" ), COleVariant(( long ) oExcel.get_Workbooks() ) ); oSheet.ReleaseDispatch(); oSheets.ReleaseDispatch(); oRange.ReleaseDispatch(); oBooks.Close(); oExcel.ReleaseDispatch();
|
|
DejaVu |
» 2013-04-12 16:03:44 Jeżeli już publikujesz kod/cokolwiek innego na forum to dostosuj język do kultury. Takie posty zazwyczaj są usuwane zamiast poprawiane, więc miej to na uwadze w przyszłości.
/edit:
Poza tym pytanie raczej brzmi czy chcesz modyfikować plik czy też go skopiować. Jeżeli chcesz go tylko i wyłącznie skopiować to nie potrzebujesz do szczęścia żadnego OLE tylko zwykłe, binarne kopiowanie plików.
/edit2:
Dodam jeszcze, że jest zarówno metoda Save jak również SaveAs w klasie CWorkbooks. |
|
Antheramis Temat założony przez niniejszego użytkownika |
» 2013-04-16 13:59:29 Przepraszam za moje pismo.
Dziękuję. za pomoc, nie wiem czemu nie zauważyłem tych metod. |
|
« 1 » |