作者kmx (星野残红)
看板Python
标题[问题] 如何将目前已开启Excel档另存新档
时间Sun Feb 6 16:02:25 2022
各位好,小弟初学python
目的是想要把公司ERP内的周期性报表,自动转出excel档,目前是
用很简陋的pyaotugui控制滑鼠、键盘的功能,取代滑鼠点点点的
重复性工作
目前弄到把ERP内资料转出EXCEL并开启後,想要另存到指定
的资料夹和指定档名,想要用openpyxl之类的指令,把ERP转出
完自动开启的EXCEL档另存
但发现好像openpyxl都无法操作已开启的excel?
看了大部分的教学,都是操作现存的excel、或是已经有的excel
没有教"已开启中"的excel如何操作(我也只需要可另存新档)
看到好像有人说xlwings,但我研究了一下也不太清楚
想请问版上各位有无解决方式
目前另存新档还是用控制滑鼠、键盘的方式点点点,有时会失效
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.230.224.99 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1644134547.A.92B.html
1F:推 s0914714: win32 不然就是关档->开档->另存新档 02/06 17:01
2F:推 ese953130: xlwing 的作法bk=xw.books[“档名”](已开启档案才可 02/06 18:41
3F:→ ese953130: 以用不然会报错) bk.save(“要储存的路径/档名”) 02/06 18:41
4F:推 s0914714: 传送另存新档热键的键盘讯息给窗口也行 02/06 20:19
感谢两位分享方式!
※ 编辑: kmx (125.230.224.99 台湾), 02/06/2022 22:48:57
5F:推 woogee: 先pip install pywin32 02/09 17:04
6F:→ woogee: import win32com.client 02/09 17:05
7F:→ woogee: try: 02/09 17:06
8F:→ woogee: excel = win32com.client.GetActiveObject("Excel.Applica 02/09 17:06
9F:→ woogee: tion") 02/09 17:06
10F:→ woogee: excel.Application.ActiveWorkbook.SaveAs("D:\\b.xlsx") 02/09 17:07
11F:→ woogee: excel.Application.Quit() 02/09 17:07
12F:→ woogee: except: 02/09 17:07
13F:→ woogee: ... 02/09 17:08
14F:→ woogee: 这样可以直接控制已开启的Excel去另存新档到D槽存为b.xlsx 02/09 17:08
感谢w大,我试试看!
※ 编辑: kmx (125.230.224.99 台湾), 02/09/2022 19:20:15
15F:推 crm123: import xlwings as xw 02/10 15:48
16F:→ crm123: Wa = xw.books.active 02/10 15:49
17F:→ crm123: If wa.name =‘Book1’ : 02/10 15:49
18F:→ crm123: wa.save(file_path) 02/10 15:50
19F:→ crm123: app = xw.apps.active 02/10 15:50
20F:→ crm123: app.kills() 02/10 15:50
21F:推 lambo: 你都用pyaotugui 何不直接开启Excel档然後ctrl+s? 02/13 22:47
22F:→ lambo: 如果另存新档会失效,不然就先点工作列让视窗保持focus? 02/13 22:49