openpyxl 激活单元格无法复制单元格
我需要帮助,最近遇到一个问题。
我正在创建一个自动化程序,用来把Excel里的信息复制到另一个应用程序(比如记事本)。
一开始,我是用Pyautogui来进行复制和粘贴,但过了一段时间,它开始出现问题。有时候,它复制不正确,或者根本就没有按下复制键。
所以,我决定试试用Openpyxl来直接复制单元格的内容。但我在让它正常工作上遇到了麻烦。
首先,我无法正确获取单元格的值。其次,我无法让自动化程序实时识别当前活动的单元格已经改变。
这是我的代码:
import openpyxl
while True:
wb = openpyxl.load_workbook('CONEMB_ZLE.xlsx')
sheet = wb.active
cell = sheet.active_cell # Get the active cell object
print(cell)
wb.save('CONEMB_ZLE')
print('salvo')
wb.close()
有人能帮我解决这个问题吗?
提前谢谢大家!
我尝试了很多方法,但我就是想复制一个选中的单元格并保存到一个变量里。
2 个回答
0
要获取工作簿中活动单元格的值,你只需要再加一行代码 value = sheet[cell].value
。另外,wb.save
这部分也需要稍微调整一下。这样,整个脚本就会变成这样。
import openpyxl
while True:
wb = openpyxl.load_workbook('CONEMB_ZLE.xlsx')
sheet = wb.active
cell = sheet.active_cell # Get the active cell object
value = sheet[cell].value
print(value)
wb.save('CONEMB_ZLE.xlsx')
print('salvo')
wb.close()
0
openpyxl 是一个很不错的工具,可以用来处理 Excel 文件,但它不适合用来实时与打开的 Excel 进行交互。这就是说,如果你想知道在 Excel 中哪个单元格是当前选中的,openpyxl 就帮不了你。
如果你在使用 PyAutoGUI 时遇到无法正确复制或模拟按键的问题,可以考虑使用 pyperclip 这个库,它可以更可靠地处理复制和粘贴操作。
如果你真的需要实时检测 Excel 中的变化,比如当前选中的单元格,你就需要一些更专门的工具来与正在运行的 Excel 进行交互。在 Windows 系统上,你可以使用一种叫做 COM 自动化的技术(配合 pywin32 库),这样就可以实现这种交互。
import openpyxl
wb = openpyxl.load_workbook('CONEMB_ZLE.xlsx')
sheet = wb.active
cell_value = sheet['A1'].value
print(cell_value)
wb.close()