Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Excel-Datei erstellen und "was" reinschreiben

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
08.03.2005, 15:14 Uhr
sashka



Hallo nochmal,
da mir heute früh so schnell und gut geholfen wurde, hoffe ich, das mir nun ebenso gut geholfen wird... ;-)
Ich habe eine ListView in der Report-Ansicht mit 3 "Spalten". Ich möchte nun, das ich den Inhalt des ListViews in einer Excel-Tabelle speichern kann. Und zwar das ich über das Menü Datei->Speichern unter... in meinem Programm gehe. Ich möchte also auswählen können wo die Datei erzeugt wird, wie sie heißt etc. In die Excel-Tabelle speichern ist eigentlich recht "simpel" (hoffe ich zumindest), ich möchte einfach nur, das die drei "Spalten" der listview genauso in 3 spalten in der excel-tabelle gespeichert werden. Die listview kann ich auslesen, das weiß ich, aber wie krieg ich das ausgelesene in die excel-tabelle und wie erzeuge ich die excel-tabelle!?

Ich hoffe, mein Problem kam verständlich rüber und mir kann jemand weiterhelfen (und tut es auch) ;-)


Gruß
Sashka
--
Es ist egal was man macht, hautsache man macht etwas!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.03.2005, 15:38 Uhr
Tommix



Hallo,
sieh Dir mal das Excel-Projekt von Uwe an:
www.fun-soft.de/downloads.php

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.03.2005, 16:57 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


eine ander möglichkeit wäre einfach durch komma getrennt in eine textdatei zu schreiben udn diese dann mit excel zu öffnen... des hardcoreweg ist dann über com/ole automatisierung...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.03.2005, 11:46 Uhr
sashka



hey, danke für die schnelle antwort!
@Tommix: Das Excel-Projekt hatte ich auch schon gesehen, aber da die datei die man downloaded dachte ich, das es sich um die exe des programmes handelt und damit hätte ich ja nichts anfangen können... deshalb habe ich selbige nicht heruntergeladen... aber als du sie mir empfohlen hast hab' ich sie mir dann doch heruntergeladen und es ist eigentlich genau das drin, was ich gesucht habe, vielen dank!!

@Windalf: das mit der Text-Datei ist sicherlich eine recht einfache lösung, aber leider viel zu umständlich, denn die excel-datei die mein programm erstellen soll, soll wiederrum von einem anderen programm eingelesen und weiterverarbeitet werden.... wenn ich also excel extra noch starten und die txt-datei in einen excel-datei umwandeln muss wäre das zuviel verlangt vom anwender..... aber dennoch danke, für andere zwecke sicherlich eine gute lösung ;-)


Ich werde es nach dem mittag mal mit der Lösung des Excel-projektes ausprobieren, da es ähnlich abläuft wie die datenbankabfragen in meinem programm werd' ich das schon ohne probleme hinkriegen.....denke ich....... nochmals vielen dank für die schnellen antworten!!! :-)


Gruß
Sashka
--
Es ist egal was man macht, hautsache man macht etwas!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
16.03.2005, 10:21 Uhr
sashka



Hat alles wunderbar geklappt, aber eine.... naja zwei fragen habe ich noch... ;-)
Zum einen ist es möglich in die Kopfzeile etwas rein zu schreiben?? Wenn ja, wie kann ich das machen!?
Und zweitens wie kann ich beim erstellen einen Ordner anlegen?? Also wenn ich als Pfad Ctest\test.xls angebe und der Ordner test noch gar nicht vorhanden ist...

Ich hoffe ihr könnt mir weiterhelfen.... bis jetzt konntet ihr ja immer was mir auch immer sehr weitergeholfen hat

Gruß
Sashka
--
Es ist egal was man macht, hautsache man macht etwas!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
16.03.2005, 11:45 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Zum einen ist es möglich in die Kopfzeile etwas rein zu schreiben?? Wenn ja, wie kann ich das machen!?


ich würde sagen in dem fall kommst du um com/ole automatisierung nicht drum herum


Zitat:

Also wenn ich als Pfad Ctest\test.xls angebe und der Ordner test noch gar nicht vorhanden ist...




C++:
if(!SetCurrentDirectory("C:/Ctest"))CreateDirectory("C:/Ctest",NULL);


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
17.03.2005, 07:58 Uhr
sashka



hhmmm....... kennst du eine gute webseite wo ich etwas über com lesen kann?? oder auch ein gutes buch, das es sich wirklich lohnt es zu kaufen!?
--
Es ist egal was man macht, hautsache man macht etwas!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
17.03.2005, 10:42 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


so kannst du in zelle B5 was reinschreiben....

C++:
import <mso9.dll> no_namespace rename("DocumentProperties", "DocumentPropertiesXL")  
#import "C:\Programme\Gemeinsame Dateien\Microsoft Shared\VBA\VBA6\vbe6ext.olb" no_namespace  
#import <excel9.olb> rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") no_dual_interfaces

//ist für excel2k wenn du ne andere version heisst werden die libs statt 9 halt ne andere nummer haben


#include <stdio.h>
#include <tchar.h>

void dump_com_error(_com_error &e)
{
    _tprintf(_T("Oops - hit an error!\n"));
    _tprintf(_T("\a\tCode = %08lx\n"), e.Error());
    _tprintf(_T("\a\tCode meaning = %s\n"), e.ErrorMessage());
    _bstr_t bstrSource(e.Source());
    _bstr_t bstrDescription(e.Description());
    _tprintf(_T("\a\tSource = %s\n"), (LPCTSTR) bstrSource);
    _tprintf(_T("\a\tDescription = %s\n"), (LPCTSTR) bstrDescription);
}


struct StartOle {
    StartOle() { CoInitialize(NULL); }
    ~StartOle() { CoUninitialize(); }
} _inst_StartOle;



void main()
{
    using namespace Excel;

    _ApplicationPtr pXL;
    try {
    
    if (pXL.GetInterfacePtr() == NULL) pXL.CreateInstance(L"Excel.Application.9"); //check ob es schon laeuft
    

    pXL->Visible = VARIANT_FALSE; // VARIANT_TRUE öffnet Excel visible
    WorkbooksPtr pBooks;
    _WorkbookPtr pBook;    
    WorksheetsPtr pSheets;
    _WorksheetPtr pSheet;

    pBooks= pXL->Workbooks;
    pBook = pBooks->Add((long)Excel::xlWorksheet);
    pSheets = pBook->GetWorksheets();
    pSheet=pBook->ActiveSheet;
    pSheet->Name="MeinBlatt";

    pXL->Range["MeinBlatt!B5"]->Value2= 4711.0815;            
    
    pBook->SaveCopyAs("c:\\test.xls");
    pBook->Close(false);    //damit der die aktuelle nicht speichert
    
    pXL->Quit();
    
    } catch(_com_error &e) {
    dump_com_error(e);

    }
}







--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
18.03.2005, 07:38 Uhr
sashka



ok, dankeschön, das ist ja schon mal etwas für den anfang... aber ich befürchte irgendwie dass das mit ODBC einfacher ging.... naja, wenn Chef das so will muss ich da halt durch und es zumindest versuchen und mir mal ansehen... ;-)
--
Es ist egal was man macht, hautsache man macht etwas!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
18.03.2005, 10:39 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


das hier finde ich gar nicht schlecht... ist auch ein fuzzi aus von c-plusplus.de
www.henkessoft.de/inhalt.htm
leider hat er das zweiter kapitel dazu noch nicht geschrieben
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: