Die Verwendung von openpyxl in Excel erzeugt die Fehlermeldung „Datei nicht gefunden“, funktioniert aber in Spyder einwa
Posted: 24 Dec 2024, 22:07
Bei meinem Versuch, die Erstellung von Arbeitsblättern für Schüler überall zu automatisieren, bin ich auf ein Problem gestoßen. Ich versuche, Python in Excel (=py) dazu zu bringen, eine Excel-Tabelle in ein Bild umzuwandeln und das Bild in der Zelle zu platzieren, in der der Python-Code vorhanden ist. openpyxl gibt „Datei nicht gefunden“ zurück. Dieser Code funktioniert perfekt in Spyder und erzeugt das folgende Bild:

Das ist mein Ziel. Der gleiche Code von INSIDE Excel (=py) gibt mir einen Fehler. Hier ist der Code, der den Fehler erzeugt:
[*]Ich habe versucht, \ in / zu ändern.
[*]Ich habe versucht, Single \ in Double \ zu ändern.
Ich habe versucht, „r“ vor dem Dateipfad einzufügen. Der Pfad ist korrekt. Der Ordner mit der
Excel-Arbeitsmappe ist vollständig freigegeben (nicht schreibgeschützt).
[*]Ich habe hier (SO) und anderswo gesucht.
Auch hier funktioniert es, wenn es von Spyder aus ausgeführt wird, aber nicht von Excel. Hier ist der Traceback.

Das ist mein Ziel. Der gleiche Code von INSIDE Excel (=py) gibt mir einen Fehler. Hier ist der Code, der den Fehler erzeugt:
Code: Select all
import matplotlib.pyplot as plt
import openpyxl
from openpyxl import load_workbook
# Read the named range from Excel
wb = load_workbook("C:/Users/barry/Desktop/WS Generators/Stats WS Generator 2024.xlsm")
named_range = wb.defined_names['DT_1']
cells = named_range.destinations
# Get the first (and only) cell range
sheet_name, cell_range = next(cells)
sheet = wb[sheet_name]
data = [[cell.value for cell in row] for row in sheet[cell_range]]
# Create a figure and axis
fig, ax = plt.subplots(figsize = (3,3), dpi = 400)
# Hide axes
ax.axis('off')
# Create table
table = ax.table(cellText=data, loc='center', cellLoc='center')
# Set table properties
table.auto_set_font_size(False)
table.set_fontsize(9)
table.scale(1, 1.2)
# Add borders
for cell in table._cells:
table._cells[cell].set_edgecolor('black')
table._cells[cell].set_linewidth(0.5)
# Show the table
plt.show()
[*]Ich habe versucht, Single \ in Double \ zu ändern.
Ich habe versucht, „r“ vor dem Dateipfad einzufügen. Der Pfad ist korrekt. Der Ordner mit der
Excel-Arbeitsmappe ist vollständig freigegeben (nicht schreibgeschützt).
[*]Ich habe hier (SO) und anderswo gesucht.
Auch hier funktioniert es, wenn es von Spyder aus ausgeführt wird, aber nicht von Excel. Hier ist der Traceback.
Code: Select all
FileNotFoundError: [Errno 2] No such file or directory: 'C:/Users/barry/Desktop/WS Generators/Stats WS Generator 2024.xlsm'