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