[問題] 如何將目前已開啟Excel檔另存新檔

作者: kmx (星野殘紅)   2022-02-06 16:02:25
各位好,小弟初學python
目的是想要把公司ERP內的週期性報表,自動轉出excel檔,目前是
用很簡陋的pyaotugui控制滑鼠、鍵盤的功能,取代滑鼠點點點的
重複性工作
目前弄到把ERP內資料轉出EXCEL並開啟後,想要另存到指定
的資料夾和指定檔名,想要用openpyxl之類的指令,把ERP轉出
完自動開啟的EXCEL檔另存
但發現好像openpyxl都無法操作已開啟的excel?
看了大部分的教學,都是操作現存的excel、或是已經有的excel
沒有教"已開啟中"的excel如何操作(我也只需要可另存新檔)
看到好像有人說xlwings,但我研究了一下也不太清楚
想請問版上各位有無解決方式
目前另存新檔還是用控制滑鼠、鍵盤的方式點點點,有時會失效
作者: s0914714 (YA)   2022-02-06 17:01:00
win32 不然就是關檔->開檔->另存新檔
作者: ese953130 (ese953130)   2022-02-06 18:41:00
xlwing 的作法bk=xw.books[“檔名”](已開啟檔案才可以用不然會報錯) bk.save(“要儲存的路徑/檔名”)
作者: s0914714 (YA)   2022-02-06 20:19:00
傳送另存新檔熱鍵的鍵盤訊息給窗口也行
作者: woogee (woogee)   2022-02-09 17:04:00
先pip install pywin32import win32com.clienttry:excel = win32com.client.GetActiveObject("Excel.Application")excel.Application.ActiveWorkbook.SaveAs("D:\\b.xlsx")excel.Application.Quit()except:...這樣可以直接控制已開啟的Excel去另存新檔到D槽存為b.xlsx
作者: crm123 (CRM)   2022-02-10 15:48:00
import xlwings as xwWa = xw.books.activeIf wa.name =‘Book1’ :wa.save(file_path)app = xw.apps.activeapp.kills()
作者: lambo (Lambo)   2022-02-13 22:47:00
你都用pyaotugui 何不直接開啟Excel檔然後ctrl+s?如果另存新檔會失效,不然就先點工作列讓視窗保持focus?

Links booklink

Contact Us: admin [ a t ] ucptt.com