Laden...

Excel datei erstellen und daten hineinschreiben

Letzter Beitrag vor 16 Jahren 16 Posts 6.903 Views
Excel datei erstellen und daten hineinschreiben

hallo zusammen 🙂

mein problem ist das ich eine datenbank habe und über einen button eine neue excel datei anlegen soll und die daten der datenbank (oracle) einfügen soll. Mein erstes Problem ist das ich nicht weiss ie ich eine neue excel datei anlege und mein zweites wie ich sie füllen kann.

kommt mir bitte nicht mit dem excel faq oder der suche denn es hat mir beides nicht geholfen.

p.s. es handelt sich um excel 07

MfG haxXxy

:rolleyes: 😁 😮

Kleine hilfe...

Hi haxXxy,

wenn die Datei schon existiert könntest es du mit dem StreamReader probieren.

Gruß Michael =)

da is ja mein prob sie existiert noch nicht. hier im forum gibbet genug beispiele dafür wenn sie existiert aber keine dafür wenn sie noch nicht existiert.

:rolleyes: 😁 😮

Hallo haxXxy,

vielleicht hast den hier ja nur Übersehen.

Alle beide Varianten können eine ExcelMappe aus dem Code erzeugen.

Gruß falangkinjau

es muss aber doch nch ne kürzere variante geben ich mein wenn man ein pdf erzeugt und daten reinschreibt sind es ja auch höchstens 5-10 zeilen text und kein halbes projekt 🙁

:rolleyes: 😁 😮

Hallo,

wenn du ein PDF erzeugst verwendest du eine Lib?
ich nehm mal an ja.. dann gehe den beitrag durch, da is ein link für eine Komponente mit Beispiel:

    static void Main(string[] args) {
        Workbook book = new Workbook();
        Worksheet sheet = book.Worksheets.Add("Sample");
        WorksheetRow row =  sheet.Table.Rows.Add();
        row.Cells.Add("Hello World");
        book.Save(@"c:\test.xls");
    }

Wie kurz den noch?

lg Lion

für die pdf erzeugung nutze ich itextsharp

ok werd ich mir mal anschaun 🙂

:rolleyes: 😁 😮

für die pdf erzeugung nutze ich itextsharp

achso, für PDF verwendest du ein "komplettes Projekt" für die erstellung, und hier ist dir ein "halbes Projekt" (wie du sagtest) zu viel? 🙂

Die frage ist eben, ob du selber machen willst oder ob du die Komponente verwenden willst, machst du es selbst, kommst du nicht herum.

Bin mir nicht sicher ob itextsharp frei ist, falls ja guck da mal rein, sind sicher auch keine 5 - 10 Zeilen Code 😉

€Dit: Warum gehen eigentlich keine 🙂, sondern nur 🙂 ( : ) )

lg Lion

ja hab wieder das wichtigste übersehen am artikel habs jetzt 🙂
hast schon recht itext ist selber schon was größer als 5 - 10 zeilen 😜
aber frei ist es 🙂

ps . Beschwer dich bei den admins wegen den smileys 😁

:rolleyes: 😁 😮

nun aber noch mal zurück zum anfanfg nun habe ich per:

static void Main(string[] args) {
        Workbook book = new Workbook();
        Worksheet sheet = book.Worksheets.Add("Sample");
        WorksheetRow row =  sheet.Table.Rows.Add();
        row.Cells.Add("Hello World");
        book.Save(@"c:\test.xls");
    }

die excel datei angelegt weiss aber immer noch nicht wie ich meinen datatable in die mappe bekomme ich bitte um weitere hilfe 🙂

:rolleyes: 😁 😮

Bin mir nicht sicher obs hierfür was vorgefertiges gibt (habe noch nicht so oft in xls expotiert) aber wie wärs mit selbst machen? 🙂

For schleifen? foreach? 🙂
lg

lg Lion

Hallo,

ich versuch jetzt schon die ganze Zeit ein worksheet in einer bestehenden Datei anzulegen, leider funktioniert das gar nicht so, wie das Beispiel zeigt!

static void Main(string[] args) {
        Worksheet sheet = book.Worksheets.Add("Sample");
    }

Ich hab mir eine Funktion geschrieben, mit der ich eine Excel Tabelle mit Daten befüllen möchte...

public static void worksheetWrite(string fileCompleteName)
        {
            string filename = fileCompleteName;

            Excel.Application exlApp = new Excel.Application();
            Excel.Workbook wb = exlApp.Workbooks.Open(filename, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
            Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

            //Arbeitsblatt erzeugen
            Excel.Worksheet sheet = (Excel.Worksheet)wb.Worksheets.Add("NEW")

            // Zelle A1  adressieren
            Excel.Range range = (Excel.Range)sheet.Cells[1, 1];

            // Zelle mit Text füllen
            range.Value2 = arrayTwo[0, 0];

            wb.Save(@"c:\test.xls");

            Marshal.ReleaseComObject(sheet);

            wb.Close(false, Type.Missing, Type.Missing);
            Marshal.ReleaseComObject(wb);
            exlApp.Quit();
            Marshal.ReleaseComObject(exlApp);
        }

Kann mir jemand helfen?

Excel-Export

Wer XML (warum auch immer?) nicht benutzen will, kann auch mit OLEDB nach Excel exportieren. Hier ist ein funktionierendes Beispiel, wie das geht:
Excel: DataTable mittels OLEDB in Excel-Dokument exportieren

@Schnuki: In diesem Beispiel findest Du auch Code, der erfolgreich ein neues Tabellenblatt einfügt (Mit Worksheets.Add eben; Da kann man ++eigentlich ++nicht viel falsch machen).

@haxXxy: Es geht leider nicht immer als mit nur 5 Zeilen Code. Verwendest Du wirklich die lahme COM Interop-Variant, statt XML, nur weil Du dafür etwas mehr Code hinschreiben musst? Wenn ich Dir einen Rat geben darf: Mach es am besten mit XML!

naja mit den 5 zeilen meinte ich eigentlich nur das neue objekt erzeugen 🙂

:rolleyes: 😁 😮

Danke, jetzt erstellt er mir endlich meine Tabelle... mein nächstes Problem ist, dass ich meine ganzen Daten in einem Array gespeichert hab und ich jetzt den zellen das nciht zu weisen kann seufz

Arrays

Die erwähnten Beispiele gehen von einer DataTable als Datenquelle für den Excel-Export aus. Das lässt sich aber auch ohne viel Umstand auf Arrays oder Objektlisten umbauen.

Also entweder eines der Export-Beispiele für die Verwendung mit Arrays umbauen, oder statt Arrays eben DataTables benutzen.