【发布时间】:2021-05-14 08:54:43
【问题描述】:
目标:
我正在尝试使用 openpyxl 从 Excel 单元格中读取产品编号(例如 A11841-2 - -),并使用 pyautogui.write 将其写入数据库窗口的字段中。我的原始代码(https://pastebin.com/6EUFQ09s):
import openpyxl
wb = openpyxl.load_workbook('repack_locns.xlsx')
sheet = wb['r_locn']
sku = sheet.cell(row=2, column=1).value
#5 Enter product code into PKMS (cursor should already be where it's supposed to be)
#and press Enter
import pyautogui
pyautogui.write(sku)
没有将信息写入正确的字段(产品代码 A11841-2 中第一个连字符后的数字 2 - - 应该在后缀字段中,而不是在样式字段中,如1 中所示)。 [注意:我正在使用 Mu 1.1.0.alpha.2 来编写我的代码并从中运行它]
我做了什么:
我首先在 Excel 中查找产品编号中的连字符并将其替换为 \t,从而得到如下产品代码:A11841\t2 \t \t。当我简单地从 excel 单元格中复制产品编号并将其粘贴到代码中时(修改位于第 34 行 https://pastebin.com/sX1SdV8Q):
import openpyxl
wb = openpyxl.load_workbook('repack_locns.xlsx')
sheet = wb['r_locn']
sku = 'A11841\t2 \t \t'
#5 Enter product code into PKMS (cursor should already be where it's supposed to be)
#and press Enter
import pyautogui
pyautogui.write(sku)
并在每一端加上一个单引号,就可以了!它会在按下制表符时读取\t,并将产品代码输入正确的字段(2)。然后,我使用我的原始代码从具有此格式更改的原始 Excel 文件的副本中读取。
问题:
当产品编号由pyautogui 写入时,它不会将\t 识别为制表符。相反,它只是将它们写成字符 (3)。
我尝试过的:
我使用pyperclip 尝试在我的代码中包含该复制/粘贴步骤,因此我最终可以使其可重复。我使用openpyxl 从Excel 单元格中提取,然后在每一端连接单引号。但是,它没有用;同样的问题出现在pyautogui.write 函数无法将\t 识别为制表符并简单地将它们写为字符。
我使用了type(),pyautogui.write 编写的内容和我直接从 Excel 复制/粘贴的内容(然后用单引号括起来)都归类为字符串。不知道为什么 \t 在每种情况下都没有受到相同的对待。
【问题讨论】:
标签: python openpyxl pyautogui python-3.9