Excel Tabelle als Bild



  • Hi,

    Kann man mit irgendeinem Tool eine Tabelle in einem Excel Dokument zu einem Bild konvertieren? Ich weiß daß man die Tabelle in Excel kopieren und in Paint einfügen kann, aber das ist zu umständlich. Ich hätte dafür gerne ein Commandline tool oder gibt es eine einfach zu benutzende C Bibliothek für sowas? Ich möchte es in einer Stapelverarbeitung benutzen. Ich kenne mich mit Excel leider auch nicht aus, da ich es selbst noch nie benutzt habe.



  • Vielleicht hilft Dir dieses Excel VBA Makro weiter:

    Sub TestAufruf()
        Call SaveRangeAsPicture(Me.Range("A1:B4"), "t:\MyPic", "gif")
    End Sub
    
    ' Mit diesem Makro wird ein ausgewählter Excel Zellenbereich als Bild in eine Datei abgespeichert.
    ' Parameter
    ' oRngSource:   Der abzuspeichernde Zellenbereich als Range
    ' sFilename:    Der Dateiname wo abgespeichert werden soll, ohne Erweiterung und ohne Punkt.
    ' sExtension:   Die Dateierweiterung. Gültig sind gif und jpg, ev auch andere.
    Public Sub SaveRangeAsPicture(oRngSource As Range, sFilename As String, sExtension As String)
        Dim bCleanUp As Boolean
        On Error GoTo errHandler
    
        ' Erstelle ein Shape mit der Range als Bildinhalt:
        Dim oShape As Shape
        Dim oWks As Worksheet
        Set oWks = oRngSource.Parent
        oRngSource.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
        oWks.Pictures.Paste
        Set oShape = oWks.Shapes(oWks.Shapes.Count)
    
        ' Erstelle nun einen Chart, mit dem wir Bilder speichern können:
        Dim oChart As Chart
        Dim oChartObject As ChartObject
        Set oChart = Application.Charts.Add
        oChart.Location Where:=xlLocationAsObject, Name:=oWks.Name
        Set oChart = Nothing
        Set oChartObject = oWks.ChartObjects(oWks.ChartObjects.Count)
    
        ' Kopiere nun das Bild aus dem Shape in den Chart und speichere den Chartinhalt als Bild ab:
        oChartObject.Width = oShape.Width
        oChartObject.Height = oShape.Height
        oShape.CopyPicture Appearance:=2, Format:=-4147
        oChartObject.Chart.Paste
        oChartObject.Chart.Export Filename:=sFilename & "." & sExtension, FilterName:=sExtension, Interactive:=False
    
        ' Nun noch aufräumen:
    cleanUp:
        bCleanUp = True
        oShape.Delete
        oChartObject.Delete
        If Not oChart Is Nothing Then oChart.Delete
        Exit Sub
    
        ' Der Error Handler:
    errHandler:
        If Not bCleanUp Then MsgBox "Fehler: " & Err.Description, vbCritical
        Err.Clear
        If Not bCleanUp Then
            Resume cleanUp:
        Else
            Resume Next
        End If
    End Sub
    


  • danke, ich schaue es mal an


Anmelden zum Antworten