Super danke nochmals! So sieht mein Code aus, jetzt schmeißt der mir einen neuen Fehler aus, hat mit der ursprünglichen Sache nichts zu tun, vllt könnt ihr mir trdm irgendwie helfen. Und zwar soll die erste Zeile meiner Tabelle grau untermalt sein damit es schöner ausschaut. Bevor ich es vergesse, das ganze soll als PDF ausgegeben werden, und damit es leserlich bleibt werden pro Seite max 10 Spalten ausgedruckt. Habe nur die Cell Funktion gefunden die bis jetzt funktioniert. Damit alle Zellen ausgewählt werden, musste ich eine For Schleife schreiben wie im Code ersichtlich. Nun gibt er mir einen KeyError Fehler raus, weil mein range ja immer bis Zehn geht, wenn aber die Excel Datei z.B. 32 Spalten hat, werden die ersten 30 Spalten Fehlerfrei ausgegeben, bei der 2 schmeisst der mir logischerweise den Fehler aus. Wie könnte ich das elegant lösen. BTW meine Excel Dateien können 1-60 Spalten enthalten. So die Vorgabe.
Code: Alles auswählen
import numpy as np
import matplotlib.pyplot as plt
#from matplotlib.pyplot import style
import pandas as pd
import seaborn as sns
from pyensae.graph_helper import Corrplot
#import sklearn
#from sklearn import linear_model
import matplotlib.pylab as pl
from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.backends.backend_pdf
from pandas.plotting import table
import matplotlib.patches as mpatches
from scipy import stats
from pdfrw import PdfReader, PdfWriter, PageMerge
df = pd.read_excel("C:/test/30.xlsx")
df.select_dtypes(include = ['int16', 'int32', 'int64', 'float16', 'float32', 'float64'])
#Pdf generieren
with PdfPages('multipage.pdf') as pdf:
#Tabelle
#first_page
s = df.iloc[0:15,0:10]
fig, ax = plt.subplots(figsize=(5, 1),)
plt.suptitle("1.Excel-Daten", fontsize =15)
ax.xaxis.set_visible(False)
ax.yaxis.set_visible(False)
ax.set_frame_on(False)
tabla = table(ax,s, colWidths=[0.20]*len(df.columns))
tabla.auto_set_font_size(False)
tabla.set_fontsize(15)
tabla.scale(1.5,1.5)
for s in range(10):
tabla._cells[0,s]._text.set_fontsize(13)
tabla._cells[0,s].set_color('grey')
pdf.savefig(fig,bbox_inches = 'tight', dpi = 300)
plt.close
#2_page
x= len(df.columns)
if x > 10:
s1 = df.iloc[0:15, 10:20]
fig1, ax1 = plt.subplots(figsize=(5, 1))
plt.suptitle("1.Excel-Daten-Seite-2", fontsize =15)
ax1.xaxis.set_visible(False)
ax1.yaxis.set_visible(False)
ax1.set_frame_on(False)
tabla1 = table(ax1,s1, colWidths=[0.20]*len(df.columns))
tabla1.auto_set_font_size(False)
tabla1.set_fontsize(15)
tabla1.scale(1.5,1.5)
for s1 in range(10):
tabla1._cells[0,s1]._text.set_fontsize(13)
tabla1._cells[0,s1].set_color('grey')
pdf.savefig(fig1,bbox_inches = 'tight', dpi = 300)
else:
plt.close
#3_page
x = len(df.columns)
if x > 20:
s2 = df.iloc[0:15, 20:30]
fig, ax2 = plt.subplots(figsize=(5, 1))
plt.suptitle("1.Excel-Daten-Seite-3", fontsize =15)
ax2.xaxis.set_visible(False)
ax2.yaxis.set_visible(False)
ax2.set_frame_on(False)
tabla2 = table(ax2,s2, colWidths=[0.20]*len(df.columns))
tabla2.auto_set_font_size(False)
tabla2.set_fontsize(15)
tabla2.scale(1.5,1.5)
for s2 in range(10):
tabla2._cells[0,s2]._text.set_fontsize(13)
tabla2._cells[0,s2].set_color('grey')
pdf.savefig(fig,bbox_inches = 'tight', dpi = 300)
else:
plt.close
#4_page
x = len(df.columns)
if x > 30:
s3 = df.iloc[0:15, 30:40]
fig, ax3 = plt.subplots(figsize=(5, 1))
plt.suptitle("1.Excel-Daten-Seite-4", fontsize =15)
ax3.xaxis.set_visible(False)
ax3.yaxis.set_visible(False)
ax3.set_frame_on(False)
tabla3 = table(ax3,s3, colWidths=[0.20]*len(df.columns))
tabla3.auto_set_font_size(False)
tabla3.set_fontsize(15)
tabla3.scale(1.5,1.5)
for s3 in range(10):
tabla3._cells[0,s3]._text.set_fontsize(13)
tabla3._cells[0,s3].set_color('grey')
pdf.savefig(fig,bbox_inches = 'tight', dpi = 300)
else:
plt.close
#5_page
x = len(df.columns)
if x > 40:
s4 = df.iloc[0:15, 40:50]
fig, ax4 = plt.subplots(figsize=(5, 1))
plt.suptitle("1.Excel-Daten-Seite-5", fontsize =15)
ax4.xaxis.set_visible(False)
ax4.yaxis.set_visible(False)
ax4.set_frame_on(False)
tabla4 = table(ax4,s4, colWidths=[0.20]*len(df.columns))
tabla4.auto_set_font_size(False)
tabla4.set_fontsize(15)
tabla4.scale(1.5,1.5)
for s4 in range(10):
tabla4._cells[0,s4]._text.set_fontsize(13)
tabla4._cells[0,s4].set_color('grey')
pdf.savefig(fig,bbox_inches = 'tight', dpi = 300)
else:
plt.close
#6_page
x = len(df.columns)
if x > 50:
s5 = df.iloc[0:15, 50:60]
fig, ax5 = plt.subplots(figsize=(5, 1))
plt.suptitle("1.Excel-Daten-Seite-6", fontsize =15)
ax5.xaxis.set_visible(False)
ax5.yaxis.set_visible(False)
ax5.set_frame_on(False)
tabla5 = table(ax5,s5, colWidths=[0.20]*len(df.columns))
tabla5.auto_set_font_size(False)
tabla5.set_fontsize(15)
tabla5.scale(1.5,1.5)
for s5 in range(10):
tabla5._cells[0,s5]._text.set_fontsize(13)
tabla5._cells[0,s5].set_color('grey')
pdf.savefig(fig,bbox_inches = 'tight', dpi = 300)
else:
plt.close