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

看板Python作者 (星野殘紅)時間3年前 (2022/02/06 16:02), 3年前編輯推噓6(6016)
留言22則, 5人參與, 最新討論串1/1
各位好,小弟初學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

02/06 17:01, 3年前 , 1F
win32 不然就是關檔->開檔->另存新檔
02/06 17:01, 1F

02/06 18:41, 3年前 , 2F
xlwing 的作法bk=xw.books[“檔名”](已開啟檔案才可
02/06 18:41, 2F

02/06 18:41, 3年前 , 3F
以用不然會報錯) bk.save(“要儲存的路徑/檔名”)
02/06 18:41, 3F

02/06 20:19, 3年前 , 4F
傳送另存新檔熱鍵的鍵盤訊息給窗口也行
02/06 20:19, 4F
感謝兩位分享方式! ※ 編輯: kmx (125.230.224.99 臺灣), 02/06/2022 22:48:57

02/09 17:04, , 5F
先pip install pywin32
02/09 17:04, 5F

02/09 17:05, , 6F
import win32com.client
02/09 17:05, 6F

02/09 17:06, , 7F
try:
02/09 17:06, 7F

02/09 17:06, , 8F
excel = win32com.client.GetActiveObject("Excel.Applica
02/09 17:06, 8F

02/09 17:06, , 9F
tion")
02/09 17:06, 9F

02/09 17:07, , 10F
excel.Application.ActiveWorkbook.SaveAs("D:\\b.xlsx")
02/09 17:07, 10F

02/09 17:07, , 11F
excel.Application.Quit()
02/09 17:07, 11F

02/09 17:07, , 12F
except:
02/09 17:07, 12F

02/09 17:08, , 13F
...
02/09 17:08, 13F

02/09 17:08, , 14F
這樣可以直接控制已開啟的Excel去另存新檔到D槽存為b.xlsx
02/09 17:08, 14F
感謝w大,我試試看! ※ 編輯: kmx (125.230.224.99 臺灣), 02/09/2022 19:20:15

02/10 15:48, , 15F
import xlwings as xw
02/10 15:48, 15F

02/10 15:49, , 16F
Wa = xw.books.active
02/10 15:49, 16F

02/10 15:49, , 17F
If wa.name =‘Book1’ :
02/10 15:49, 17F

02/10 15:50, , 18F
wa.save(file_path)
02/10 15:50, 18F

02/10 15:50, , 19F
app = xw.apps.active
02/10 15:50, 19F

02/10 15:50, , 20F
app.kills()
02/10 15:50, 20F

02/13 22:47, , 21F
你都用pyaotugui 何不直接開啟Excel檔然後ctrl+s?
02/13 22:47, 21F

02/13 22:49, , 22F
如果另存新檔會失效,不然就先點工作列讓視窗保持focus?
02/13 22:49, 22F
文章代碼(AID): #1X_u2Jah (Python)
文章代碼(AID): #1X_u2Jah (Python)