Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Grafik von Excel in die Wordtabelle (https://www.delphipraxis.net/198091-grafik-von-excel-die-wordtabelle.html)

p80286 3. Okt 2018 21:20

AW: Grafik von Excel in die Wordtabelle
 
in #7 hat codezwerg gezeigt o in Excel eine Grafik abgelegt sein könnte!

Gruß
K-H

KodeZwerg 3. Okt 2018 21:48

AW: Grafik von Excel in die Wordtabelle
 
Ja und nein, das sagt Excel das eine embedded Datei an Koordinaten x,y hin soll, aber cell hat meines Wissens dadurch kein Objekt.
Ich bräuchte mal eine Test Excel Datei, hab sowas nicht, aber ich glaube mich erinnern zu können das man mit zip dekompression an embedded inhalte rankommt.
Falls TE mal ne Datei bereitstellt kann ich was testen.

Nimmersatt 3. Okt 2018 22:27

AW: Grafik von Excel in die Wordtabelle
 
aus

http://www.office-loesung.de/ftopic292832_0_0_asc.php


Bilder werden alle in Blatt "Bildersammlung" kopiert und
angeordnet. Gegebenenfalls Anpassen

Delphi-Quellcode:
Sub BilderSammeln()
Dim s As Shape
Dim wks As Worksheet
Dim wksZ As Worksheet
Dim dblTop As Double
Dim dblLeft As Double

Application.ScreenUpdating = False
Set wksZ = Worksheets("Bildersammlung") 'Anpassen

'Kopieren
For Each wks In ThisWorkbook.Worksheets
    If wks.Name <> wksZ.Name Then
        For Each s In wks.Shapes
            If s.Name Like "*Grafik*" Or _
               s.Name Like "*Bild*" Then
                s.Copy
                wksZ.Paste
            End If
        Next
    End If
Next

'Anordnung Untereinander
For Each s In wksZ.Shapes
    s.Top = dblTop
    s.Left = dblLeft
    dblTop = dblTop + s.Height
    dblLeft = 0
Next
Application.ScreenUpdating = False
End Sub

Kann das mal jemand in Delphi übersetzen ?

In meiner Exceldatei existiert kein "sichtbares" Blatt "Bildersammlung", wo angeblich alle Bilder kopiert und angeordnet sein sollen.



mfg Nimmersatt

p80286 4. Okt 2018 08:06

AW: Grafik von Excel in die Wordtabelle
 
Zitat:

Zitat von Nimmersatt (Beitrag 1414820)
In meiner Exceldatei existiert kein "sichtbares" Blatt "Bildersammlung", wo angeblich alle Bilder kopiert und angeordnet sein sollen.

Dann leg es doch an!?

Gruß
K-H

HolgerX 4. Okt 2018 08:21

AW: Grafik von Excel in die Wordtabelle
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm..

Wieso die Excel-Bilder nicht per Zwischenablage extrahieren (geht auch ohne Blatt "Bildersammlung") und dann per Paste in Word einfügen?

Im Anhang ist ein kleines Test-Tool, welches die Bilder in die Zwischenablage packt und dann in ein neues Word-Dokument, incl. der Row und Column Information.
(Erstellt mit D6 und Office 2013)

Hier brauchst Du dir nur die Positionierung für dein Word-Dokument anzupassen.

ghubi01 4. Okt 2018 21:32

AW: Grafik von Excel in die Wordtabelle
 
Hallo Nimmersatt,

hier ein Beispiel:

Delphi-Quellcode:
procedure BildvonExcelnachWord;
var
  WordApp,
  ExcelApp,
  NewWord,
  NewExcel: OleVariant;
  count: integer;
begin
  try
    ExcelApp:=CreateOleObject('Excel.Application');
  except
    exit;
  end;
  ExcelApp.Visible:=True;
  NewExcel:=ExcelApp.WorkBooks.Add;

  // Zwei Bilder untereinander laden
  ExcelApp.ActiveSheet.Pictures.Insert('C:\Users\...\Pictures\Bild1.JPG');
  // Meine Bilder belegen nur 26 Zeilen, also das 2. Bild ab Zeile 28 laden
  ExcelApp.Cells[28,1].Select;
  ExcelApp.ActiveSheet.Pictures.Insert('C:\Users\...\Pictures\Bild2.JPG');

  // gibt die Anzahl der vorhandenen Bilder zurück.
  count:=ExcelApp.ActiveSheet.Pictures.Count;

  // Wichtig alle oder mindestens ein Bild selektieren ( ...Pictures[1].Select;)
  ExcelApp.ActiveSheet.Pictures.Select;
  // Hier das 2. Bild in die Zwischenablage kopieren
  ExcelApp.ActiveSheet.Pictures[2].Copy;

  try
    WordApp:=CreateOleObject('Word.Application');
  except
    exit;
  end;
  WordApp.Visible:=True;
  NewWord:=WordApp.Documents.Add;
  WordApp.Selection.Paste;
end;
Skalierungen und Positionierungen sind jetzt nicht dabei berücksichtigt.
Vielleicht hilft Dir dieses Beispiel weiter.

Nimmersatt 5. Okt 2018 00:21

AW: Grafik von Excel in die Wordtabelle
 
Hallo Ghubi01,

Delphi-Quellcode:
  count:=ExcelApp.ActiveSheet.Pictures.Count;
  ExcelApp.ActiveSheet.Pictures.Select;
  ExcelApp.ActiveSheet.Pictures[1].Copy;
  WordApp.Selection.Paste;

Als ich einen Teil deines Codes in meinem Programm testete, gab es Fehlermeldungen.
Als ich dein ganzes Programm testete, funktionierte es reibungslos.:thumb:

Könnten Positionsdaten der Bilder mitgeliefert werden, damit ich weiß, welches Bild das Richtige ist ?


Kann gar nicht glauben, dass nach all dem Ärger heute das Problem gelöst sein soll.


mfg Nimmersatt

Nimmersatt 5. Okt 2018 00:43

AW: Grafik von Excel in die Wordtabelle
 
Dank auch an HolgerX, da kann ich vieles lernen.:thumb:

ghubi01 5. Okt 2018 10:26

AW: Grafik von Excel in die Wordtabelle
 
Hallo Nimmersatt,

ich weis nicht, ob es so sinnvoll ist die Bilder über ihre Position zu identifizieren.

Du kannst aber jedem Bild schon beim Laden in die Excel-Datei einen eindeutigen Namen mitgeben und darüber das gewünschte Bild Dir holen.
Delphi-Quellcode:
...
  ExcelApp.ActiveSheet.Pictures.Insert('C:\Users\...\Pictures\Bild1.JPG').Name:='MyBild1';

  ExcelApp.Cells[28,1].Select;
  ExcelApp.ActiveSheet.Pictures.Insert('C:\Users\...\Pictures\Bild2.JPG').Name:='MyBild2';

  ExcelApp.ActiveSheet.Pictures.Select;

  ExcelApp.ActiveSheet.Pictures('MyBild2').Copy;
...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:50 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz