Announcement

Collapse
No announcement yet.

Listview to Excel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Listview to Excel

    Hallo zusammen,

    ich möchte gerne eine Klasse schreiben, mit dieser ich den Inhalt einer Listview in eine Exceldatei schreiben kann.

    Da ich zur Zeit noch in der Ausbildung bin fällt es mir leider nicht so leicht, da ich nicht so genau weiss, wie ich eine Excel-Datei überhaupt ansprechen kann.

    Ich wollte mal allgemein Fragen, ob dies schon mal jemand von euch gemacht hat und mir vielleicht ein paar Tipps geben kann.

    Ich habe schon mal über google gesucht und habe dort einen C#-Code gefunden, der mir jedoch nicht so ganz weiter hilft, da ich Probleme habe ihn zu verstehen


    Würde mich über eine Antwort sehr freuen.

    Gruß Daniel

  • #2
    Voraussetzung ist, das Excel auf dem Rechner installiert ist.
    Mit volgenden Anweisungen kannst du excel "vernbedienen"

    Variant Excel = Variant Excel;
    Excel = GetActiveOleObject("Excel.Application");
    Excel.OlePropertySet("Visible", true); // Tabelle Sichtbar
    Excel.OlePropertySet("DisplayAlerts", false);
    Variant WorkBooks = Excel.OlePropertyGet("WorkBooks");
    WorkBooks.OleFunction("Add");
    ActiveWorkBook = Excel.OlePropertyGet ("ActiveWorkbook");
    WorkSheets = Excel.OlePropertyGet ("Worksheets");
    WorkSheet = WorkSheets.OlePropertyGet("Item", 1);
    WorkSheet.OleFunction("Activate");
    Cells = Excel.OlePropertyGet("Cells");
    Cells.OlePropertySet("ColumnWidth", 5);
    Variant cFont = Cells.OlePropertyGet("Font");
    cFont.OlePropertySet("Size", 8);
    Cells.OlePropertySet("HorizontalAlignment", 4); //xlRight

    Variant PageSet = WorkSheet.OlePropertyGet("PageSetup");
    PageSet.OlePropertySet("PrintGridlines", 1);

    Variant Range = Excel.OlePropertyGet("Range", "A1");
    Range.OlePropertySet("Value", "Text");
    Range.OlePropertySet("HorizontalAlignment", 2); // xlLeft

    ActiveWorkBook.OleFunction("SaveAs", "Dateiname");
    ActiveWorkBook.OleFunction("Close");
    Excel.OlePropertyGet("Application").OleProcedure(" Quit");

    Comment


    • #3
      Erst mal danke für die schnelle Antwort ...

      Ich muss leider sagen, dass mir das als "anfänger" nicht so richtig weiterhilft.

      Muss ich spezielle Headerdateien noch hinzufügen ?

      Comment


      • #4
        In meiner Anwendung habe ich lediglich

        #include <vcl.h>
        #include <utilcls.h>

        zugefuegt.

        Aber einen kleinen Ferhler oben habe ich durch copy und paste.
        Die erste Ziele muss heissen:


        Variant Excel = CreateOleObject("Excel.Application");

        Die anderen Befehle sind so zu verstehen als wenn jemand Excel bedient.
        z.B. Es wird ein Variant typ auf "WorkBooks" geholt.
        Damit kann dan eie neue Tabelle angelegt werden WorkBooks.OleFunction("Add");
        Mit z.B
        Cells = Excel.OlePropertyGet("Cells");
        Cells.OlePropertySet("ColumnWidth", 5);
        wird die Breite der Zellen gesetzt.

        Achso Cells ... sind vom Typ Variant.
        Variant ActiveWorkBook, WorkSheets, WorkSheet, Cells;

        Am einfachsten setzt man die Eigenschaft Visible
        auf true und sieht sich an was Excel macht.

        Comment

        Working...
        X