看板 Python 關於我們 聯絡資訊
各位好,小弟初學python 目的是想要把公司ERP內的週期性報表,自動轉出excel檔,目前是 用很簡陋的pyaotugui控制滑鼠、鍵盤的功能,取代滑鼠點點點的 重複性工作 目前弄到把ERP內資料轉出EXCEL並開啟後,想要另存到指定 的資料夾和指定檔名,想要用openpyxl之類的指令,把ERP轉出 完自動開啟的EXCEL檔另存 但發現好像openpyxl都無法操作已開啟的excel? 看了大部分的教學,都是操作現存的excel、或是已經有的excel 沒有教"已開啟中"的excel如何操作(我也只需要可另存新檔) 看到好像有人說xlwings,但我研究了一下也不太清楚 想請問版上各位有無解決方式 目前另存新檔還是用控制滑鼠、鍵盤的方式點點點,有時會失效 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.230.224.99 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1644134547.A.92B.html
s0914714: win32 不然就是關檔->開檔->另存新檔 02/06 17:01
ese953130: xlwing 的作法bk=xw.books[“檔名”](已開啟檔案才可 02/06 18:41
ese953130: 以用不然會報錯) bk.save(“要儲存的路徑/檔名”) 02/06 18:41
s0914714: 傳送另存新檔熱鍵的鍵盤訊息給窗口也行 02/06 20:19
感謝兩位分享方式! ※ 編輯: kmx (125.230.224.99 臺灣), 02/06/2022 22:48:57
woogee: 先pip install pywin32 02/09 17:04
woogee: import win32com.client 02/09 17:05
woogee: try: 02/09 17:06
woogee: excel = win32com.client.GetActiveObject("Excel.Applica 02/09 17:06
woogee: tion") 02/09 17:06
woogee: excel.Application.ActiveWorkbook.SaveAs("D:\\b.xlsx") 02/09 17:07
woogee: excel.Application.Quit() 02/09 17:07
woogee: except: 02/09 17:07
woogee: ... 02/09 17:08
woogee: 這樣可以直接控制已開啟的Excel去另存新檔到D槽存為b.xlsx 02/09 17:08
感謝w大,我試試看! ※ 編輯: kmx (125.230.224.99 臺灣), 02/09/2022 19:20:15
crm123: import xlwings as xw 02/10 15:48
crm123: Wa = xw.books.active 02/10 15:49
crm123: If wa.name =‘Book1’ : 02/10 15:49
crm123: wa.save(file_path) 02/10 15:50
crm123: app = xw.apps.active 02/10 15:50
crm123: app.kills() 02/10 15:50
lambo: 你都用pyaotugui 何不直接開啟Excel檔然後ctrl+s? 02/13 22:47
lambo: 如果另存新檔會失效,不然就先點工作列讓視窗保持focus? 02/13 22:49