Python打开SAp登入输入账号密码后,输入查询未结工单后,输入选择项目后开始查询,然后打开电子表格并领存为xlsx表
时间: 2024-05-09 21:20:07 浏览: 9
格的代码如下:
```python
import win32com.client
import pythoncom
# 创建SAP GUI自动化对象
sapgui = win32com.client.GetObject("SAPGUI")
# 获取SAP GUI窗口
app = sapgui.GetScriptingEngine
session = app.ActiveSession
# 登录SAP系统
session.findById("wnd[0]/usr/txtRSYST-BNAME").text = "用户名"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "密码"
session.findById("wnd[0]/usr/txtRSYST-LANGU").text = "EN"
session.findById("wnd[0]/usr/txtRSYST-MANDT").text = "100"
session.findById("wnd[0]/usr/txtRSYST-CLIENT").text = "100"
session.findById("wnd[0]").sendVKey(0)
# 查询未结工单
session.findById("wnd[0]/tbar[0]/okcd").text = "/nIW33"
session.findById("wnd[0]").sendVKey(0)
session.findById("wnd[0]/usr/ctxtRIWOBJNR-LOW").text = "未结工单号"
session.findById("wnd[0]/usr/ctxtRIWOBJNR-LOW").setFocus()
session.findById("wnd[0]/usr/ctxtRIWOBJNR-LOW").caretPosition = 8
session.findById("wnd[0]/tbar[1]/btn[8]").press()
# 选择项目并开始查询
session.findById("wnd[0]/usr/cntlALV_CONTAINER_1/shellcont/shell").currentCellRow = 1
session.findById("wnd[0]/usr/cntlALV_CONTAINER_1/shellcont/shell").selectedRows = "1"
session.findById("wnd[0]/tbar[1]/btn[45]").press()
# 打开电子表格并存为xlsx格式
excel = win32com.client.Dispatch("Excel.Application")
workbook = excel.Workbooks.Add()
worksheet = workbook.ActiveSheet
session.findById("wnd[0]/usr/cntlALV_CONTAINER_1/shellcont/shell").selectedRows = "1"
session.findById("wnd[0]/tbar[1]/btn[41]").press()
session.findById("wnd[1]/usr/ctxtDY_PATH").text = "C:\\"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "查询结果.xlsx"
session.findById("wnd[1]/tbar[0]/btn[0]").press()
# 退出SAP系统
session.findById("wnd[0]").sendVKey(3)
session.findById("wnd[1]/usr/btnSPOP-OPTION1").press()
pythoncom.CoUninitialize()
```