使用 Python 和 xlwings 在 Excel 中查找 active/selected 单元格的范围
Finding Range of active/selected cell in Excel using Python and xlwings
我正在尝试在 Python(使用 xlwings)中编写一个简单的函数,它读取 Excel 中的当前 'active' 单元格值,然后将该单元格值写入单元格中的单元格活动单元格的下一列。
如果我使用绝对引用指定单元格,例如 range(3, 2),那么一切正常。但是,一旦函数为 运行.
,我似乎无法找到所选单元格的行值和列值
我发现了很多示例,其中指定了引用,但没有指定活动单元格范围可根据用户选择而变化的示例。
我尝试了一些想法。第一个选项是尝试使用我在 v0.10.0 xlwings 文档中找到的 App.selection 但这似乎不是 return 可以使用的范围参考 - 我得到一个错误 "Invalid parameter" 尝试从 'cellRange':
检索行时
def refTest():
import xlwings as xw
wb = xw.Book.caller()
cellRange = xw.App.selection
rowNum = wb.sheets[0].range(cellRange).row
colNum = wb.sheets[0].range(cellRange).column
url = wb.sheets[0].range(rowNum, colNum).value
wb.sheets[0].range(rowNum, colNum + 1).value = url
第二个想法是尝试直接从单元格选择中读取行和列,但这给了我错误 "Property object has no attribute 'row'":
def refTest():
import xlwings as xw
wb = xw.Book.caller()
rowNum = xw.App.selection.row
colNum = xw.App.selection.column
url = wb.sheets[0].range(rowNum, colNum).value
wb.sheets[0].range(rowNum, colNum + 1).value = url
是否可以使用 xlwings 将 active/selected 单元格的范围从 Excel 传递到 Python?如果有人能够阐明这一点,那么我将不胜感激。
谢谢!
您必须从工作簿中获取应用程序对象。如果你想实例化一个新的应用程序,你只会直接使用 xw.App
。此外,selection
returns 一个 Range 对象,所以这样做:
cellRange = wb.app.selection
rowNum = cellRange.row
colNum = cellRange.column
我正在尝试在 Python(使用 xlwings)中编写一个简单的函数,它读取 Excel 中的当前 'active' 单元格值,然后将该单元格值写入单元格中的单元格活动单元格的下一列。
如果我使用绝对引用指定单元格,例如 range(3, 2),那么一切正常。但是,一旦函数为 运行.
,我似乎无法找到所选单元格的行值和列值我发现了很多示例,其中指定了引用,但没有指定活动单元格范围可根据用户选择而变化的示例。
我尝试了一些想法。第一个选项是尝试使用我在 v0.10.0 xlwings 文档中找到的 App.selection 但这似乎不是 return 可以使用的范围参考 - 我得到一个错误 "Invalid parameter" 尝试从 'cellRange':
检索行时def refTest():
import xlwings as xw
wb = xw.Book.caller()
cellRange = xw.App.selection
rowNum = wb.sheets[0].range(cellRange).row
colNum = wb.sheets[0].range(cellRange).column
url = wb.sheets[0].range(rowNum, colNum).value
wb.sheets[0].range(rowNum, colNum + 1).value = url
第二个想法是尝试直接从单元格选择中读取行和列,但这给了我错误 "Property object has no attribute 'row'":
def refTest():
import xlwings as xw
wb = xw.Book.caller()
rowNum = xw.App.selection.row
colNum = xw.App.selection.column
url = wb.sheets[0].range(rowNum, colNum).value
wb.sheets[0].range(rowNum, colNum + 1).value = url
是否可以使用 xlwings 将 active/selected 单元格的范围从 Excel 传递到 Python?如果有人能够阐明这一点,那么我将不胜感激。
谢谢!
您必须从工作簿中获取应用程序对象。如果你想实例化一个新的应用程序,你只会直接使用 xw.App
。此外,selection
returns 一个 Range 对象,所以这样做:
cellRange = wb.app.selection
rowNum = cellRange.row
colNum = cellRange.column