Diskuze: Python, Excel pomocí xlwings a tisk do PDF - končí chybou pywintypes.com_error: (-2147352573, 'Člen nebyl nalezen.', None, None)
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
google = xlwings print xls sheet as pdf
# Environment
# -----------
# OS: Windows 10
# Excel: 2013
# python: 3.7.4
# xlwings: 0.15.8
import os
import xlwings as xw
# Initialize new excel workbook
book = xw.Book()
sheet = book.sheets[0]
sheet.range("A1").value = "dolphins"
# Construct path for pdf file
current_work_dir = os.getcwd()
pdf_path = os.path.join(current_work_dir, "workbook_printout.pdf")
# Save excel workbook to pdf file
print(f"Saving workbook as '{pdf_path}' ...")
book.api.ExportAsFixedFormat(0, pdf_path)
# Open the created pdf file
print(f"Opening pdf file with default application ...")
os.startfile(pdf_path)
Díky moc.
To jsem samozřejmě tehdy našel taky, ale díky za tvůj čas. Přestože
vezmu ten kód jak je a nijak ho neupravím, nebo i když alespoň nasměruju
výstup do buňky v nějakém mém excel souboru, stejně to vždycky skončí s
tou chybou, co jsem psal, viz. ten screenshot z VScode a dole žlutě
podbarvený výstup z terminálu
Sice to není úplné řešení, ale aspoň je to pojmenování problému.
Jde o to, že v počítači byly nainstalovány ještě jedny Office, tedy
ještě jeden Excel (verze 16). Takový ten předinstalovaný software, který
tam čeká, až ho jednou budete chtít.
No a ty xlwings si samozřejmě pro otevírání excelových souborů pro sebe
zaregistrovaly tu verzi 16. JENŽE. Když jsem měl v danou chvíli spuštěný
Excel verze 14, což mám prakticky pořád, když jsem se pokoušel tenhle
skript spouštět, tak xlwings použily ten otevřený Excel, uměly do něj
zapsat tu hodnotu, ale potom asi chybně volaly tu funkci (
book.api.ExportAsFixedFormat(0, pdf_path) ) pro převod do PDF, které
zřejmě přeposílaly odkaz na tu novější verzi. A tam vznikala ta chyba,
že ta funkce asi používala tu jinou verzi.
Myslel jsem si, že přijdu na to, jak xlwings přesvědčit, aby používaly tu
starší verzi Excelu. Hodně pomohl tento odkaz: dokumentace xlwings , ale neměl jsem zatím čas zjistit,
jak přesvědčit xlwing, aby pracoval s tou první nebo druhou verzí
Excelu.
Tak abych dosáhl rychle výsledku, tak jsem tu zkušební verzi Office
odinstaloval, stejně bych jí nikdy v budoucnu nekupoval. Ale určitě je tedy
dobré vědět, že v xlwings lze nějak určit, s kterou verzí Excelu při
více instancích má pracovat...
To by mozna bylo dobre nahlasit autorovi programu, knihovny, pripadne
microsoftu. Tenhle MS nesmysl s predinstalovanymi office muze zpusobovat celou
radu problemu i jinym programum, mozna
Zobrazeno 5 zpráv z 5.