Announcement

Collapse
No announcement yet.

Bitmap in bestimmte Excelzelle einfügen

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

  • Bitmap in bestimmte Excelzelle einfügen

    Guten Abend!

    Der Text aus den einzelnen Zellen meines DataViewGrids wird artig ins Excel portiert,
    nur eine Bitmap(Bild eines Barcodes), will einfach nicht im Excel landen.
    Es steht in der vorgesehenen Excelspalte dann nur:
    System.Bitmap.Drawing

    Meine Instanz ExcelApp bietet mir nichts wie:
    sheet.Shapes.AddPicture


    Codeausschnitt:
    [highlight=c#]Microsoft.Office.Interop.Excel.ApplicationClass ExcelApp
    new Microsoft.Office.Interop.Excel.ApplicationClass();

    ExcelApp.Application.Workbooks.Add(Type.Missing);
    ExcelApp.Columns.ColumnWidth = 30;


    //Reihen befüllen i=0 äussere Schleife damit Grid ab Row0 gedruckt wird
    for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
    {
    DataGridViewRow row = this.dataGridView1.Rows[i];

    for (int j = 0; j < row.Cells.Count; j++)
    {

    ExcelApp.Cells[i + 2, j + 1] = row.Cells[j].FormattedValue.ToString();

    //Versuch Bitmap zu speichern in Excel Zelle 5

    ExcelApp.Cells[i + 2, row.Cells.Count + 1] = (Bitmap)row.Cells[4].Value;


    }
    }

    ExcelApp.ActiveWorkbook.SaveCopyAs(saveFileDialog1 .FileName);
    ExcelApp.ActiveWorkbook.Saved = true;

    ExcelApp.Quit();[/highlight]

    Test: Bitmap kann korrekt auf Festplatte gespeichert werden

    [highlight=c#]// Durch Casting - mit Bitmap wird das schon vorhandene Barcode Bitmap aus der cell[4] geholt
    Bitmap c = new Bitmap((Bitmap)row.Cells[4].Value);


    // Entsteht Bitmap - - wird auf Festplatte gespeichert - sDateiname
    c.Save(sDateiname, System.Drawing.Imaging.ImageFormat.Bmp);*/[/highlight]
    Frage:
    Wie bekomme ich die Bitmaps in die Excelliste in eine bestimmte Spalte?
    Was mache ich falsch?

    LG
    glorias
    Zuletzt editiert von Jürgen Thomas; 27.03.2010, 10:34. Reason: [highlight=c#] eingefügt, künftig bitte selbst machen!

  • #2
    Hey,

    da ich mich gerade sehr mit Excel beschäftige, bin ich mir "fast" sicher, das man nicht direkt eine Zelle angeben kann.

    Was du als Workaround machen kannst: Lese die Breite und Höhe der Zellen aus, bis zu bei einer bestimmten angekommen bist

    Code:
    int dummyY = 0;
    int dummyX = 0;
    
    foreach (int zellhöhe=0; i < aktzell.y; i++)
    {
       dummyY += excelzelle.height;
    }
    
    foreach (int zellbreite=0; i < aktzell.x; i++)
    {
       dummyX += excelzelle.width;
    }
    Dann fügst du das Bild einfach da ein!

    MfG
    Die Taschenlampe!

    Die perfekte Taschenlampe für Ihr Windows Phone!

    - Die APP steuert die echte Blitz-LED an und versorgt Sie mit 100% Leistung!
    - Zudem zeigt die Live-Kachel den aktuellen Akkustand des Telefons an!


    Hier gehts zu APP!

    Comment


    • #3
      Syntax zum einfügen der Bitmap in Excel

      Danke schön!

      Was mir aber immer noch fehlt ist der passende Sytntax aus der Klasse:


      Microsoft.Office.Interop.Excel.ApplicationClass ExcelApp

      um überhaupt ein Bild ins Excel zu bekommen. Ich habe gegoogelt aber nur
      etwas der Art:

      Sheet.Shapes.AddPicture

      bekommen. Meine Intstanz ExcelApp bietet mir aber nichts derartiges.

      Und:
      ExcelApp.Cells[i + 2, row.Cells.Count + 1] = (Bitmap)row.Cells[4].Value;
      schreibt nur in die Zelle das es ein System.Drawing.Bitmap ist.

      mfg
      glorias

      Comment


      • #4
        Code:
         worksheet.Shapes.AddPicture("C:\\Test.png", Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 50, 50, -1,-1);
        -1 ganz hinten heißt originalgröße. Startposition ist selbsterklärend, 50,50. Einfach die größe der vorangegangen Zellen auslesen und das bild dahingehend setzen!

        Gruß, Flo
        Die Taschenlampe!

        Die perfekte Taschenlampe für Ihr Windows Phone!

        - Die APP steuert die echte Blitz-LED an und versorgt Sie mit 100% Leistung!
        - Zudem zeigt die Live-Kachel den aktuellen Akkustand des Telefons an!


        Hier gehts zu APP!

        Comment

        Working...
        X