Hallo zusammen,
ich habe eine Powerpoint-File generiert mithilfe von Python mit der Library python-pptx. Aber ich möchte die Pandas-Tabelle (welche von einem Einlesen CSV-Datei erstellt wurde) in die Powerpoint-Slide darstellen. Ich hab den unteren Code geschrieben, aber es funktioniert nicht. Hat vielleicht jemand eine Idee, wieso es nicht klappt? Danke
import easygui
import pandas as pd
from pptx import Presentation
# Read csv file
file_path = easygui.fileopenbox()
InputFile = pd.read_csv(file_path, sep=',', encoding='latin-1')
#Determine rows and columns
nrow = InputFile.shape[0]
ncol = InputFile.shape[1]
prs = Presentation()
###### Slide 3 #######
title_and_content = prs.slide_layouts[1]
slide3 = prs.slides.add_slide(title_and_content)
#Augment placeholder to be a table
content3 = slide3.shapes.placeholders[1]
placeholder = slide3.placeholders[1]
graphic_frame = placeholder.insert_table(rows = nrow+1, cols = ncol)
table = graphic_frame.table
prs.save('Powerpoint.pptx')
Erstellung von Powerpoint mit Python
@cedsoft: es klappt nicht, ist keine gute Fehlerbeschreibung. Was passiert? Gibt es eine Fehlermeldung? Wenn ja, welche?
Hast Du den Hinweis in der Dokumentation gelesen:
Hast Du den Hinweis in der Dokumentation gelesen:
The table placeholder has an insert_table() method. The built-in template has no layout containing a table placeholder, so this example assumes a starting presentation named having-table-placeholder.pptx having a table placeholder with idx 10 on its second slide layout:
Hallo Sirius,
Ich hatte diese Seite auch reingeschaut, aber ich möchte keine Tabelle erzeugen. Sondern eine CSV-Datei einlesen und dann in die Slides zu werfen. Mit der Seite geht es um eine Tabelle, die noch befüllt werden soll. So habe ich verstanden.
Ich hatte diese Seite auch reingeschaut, aber ich möchte keine Tabelle erzeugen. Sondern eine CSV-Datei einlesen und dann in die Slides zu werfen. Mit der Seite geht es um eine Tabelle, die noch befüllt werden soll. So habe ich verstanden.
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Das hier von Tabellen geredet wird liegt a) an deinem Codebeispiel (`insert_table` macht halt nun mal das, was es sagt...) und b) ist für CSV-Daten einen naheliegende optische / druckbare Darstellung.
Gruß, noisefloor
Und in welcher Form? CSV-Dateien sind nur Text, den bekommst du über ein Textfeld problemlos in Powerpoint. Pandas DataFrames sind "aufgebohrte" numpy-Arrays, die musst du dann in irgendeine druckbare Form bringen.Sondern eine CSV-Datei einlesen und dann in die Slides zu werfen.
Das hier von Tabellen geredet wird liegt a) an deinem Codebeispiel (`insert_table` macht halt nun mal das, was es sagt...) und b) ist für CSV-Daten einen naheliegende optische / druckbare Darstellung.
Gruß, noisefloor
Hi nosefloor,
ich hab eine CSV-Datei eingelesen mit der Variable InputFile und diese ist dann ein Pandas DataFrame, welches ich in die Powerpoint Slide reinmachen möchte. Deshalb habe diese "insert_table" benutzt und es funktioniert jedoch gar nicht.
ich hab eine CSV-Datei eingelesen mit der Variable InputFile und diese ist dann ein Pandas DataFrame, welches ich in die Powerpoint Slide reinmachen möchte. Deshalb habe diese "insert_table" benutzt und es funktioniert jedoch gar nicht.
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
ja, und in deinem vorherigen Post sagst du:
> aber ich möchte keine Tabelle erzeugen.
Also: willst du die Daten in eine PowerPoint Tabelle - ja oder nein?
Wenn nein - wie dann? Mit Tabulatoren ausgerichteter Text?
Gruß, noisefloor
ja, und in deinem vorherigen Post sagst du:
> aber ich möchte keine Tabelle erzeugen.
Also: willst du die Daten in eine PowerPoint Tabelle - ja oder nein?
Wenn nein - wie dann? Mit Tabulatoren ausgerichteter Text?
Gruß, noisefloor
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
dann hat dir Sirius3 doch schon alles gesagt, was zu sagen ist.
Die musst die Tabelle wie im verlinkten Beispiel anlegen und dann über den DataFrame iterieren und die Zellen füllen.
Gruß, noisefloor
dann hat dir Sirius3 doch schon alles gesagt, was zu sagen ist.
Die musst die Tabelle wie im verlinkten Beispiel anlegen und dann über den DataFrame iterieren und die Zellen füllen.
Gruß, noisefloor
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
sehr schön Du darfst mich aber gerne noisefloor nennen, die Python-Skills von Sirius3 habe ich noch nicht. Will mich nicht mit den Federn anderer Nicks schmücken
Gruß, noisefloor
sehr schön Du darfst mich aber gerne noisefloor nennen, die Python-Skills von Sirius3 habe ich noch nicht. Will mich nicht mit den Federn anderer Nicks schmücken
Gruß, noisefloor
Hi noisefloor,
ich bedanke mich bei dir für deine Hilfe. Es hat geklappt.
Ich möchte jetzt meine erstelle Balkendiagramm in die Slide auch mitrein. Wie kann ich damit umgehen? Muss ich unbedingt erst als JPEG speichern und dort hochladen? oder wie? Danke im Voraus
ich bedanke mich bei dir für deine Hilfe. Es hat geklappt.
Ich möchte jetzt meine erstelle Balkendiagramm in die Slide auch mitrein. Wie kann ich damit umgehen? Muss ich unbedingt erst als JPEG speichern und dort hochladen? oder wie? Danke im Voraus