python - 如何从列中随机选择一个 Excel 单元格?
问题描述
我正在尝试从 Tkinter 中的 Excel 工作表的列中随机选择一个单元格。我尝试了几种不同的方法:
第一,我试过:
wb = load_workbook('Test_Workbook.xlsx')
ws = wb.active
range = ws['A2':'A7']
for cell in range:
for x in cell:
print(random.choices((x.value)))
第二,我试过
wb = load_workbook('Test_Workbook.xlsx')
ws = wb.active
A = ws['A']
print(A)
for cell in A:
print(random.choices(f'{cell.value}') )
这两个示例都在单元格内输出字符串的随机字母,而不是从列中选择随机单元格。我如何让它返回随机单个单元格的值?
解决方案
有多种方法可以实现这一点,我尽量坚持你的方法。所以首先要看到的是,要调用worksheet
对象中的一个单元格,您可以使用 A1 表示法,例如ws["B5"]
. 如果您现在要选择的范围是A2:A7
您需要一个列表,例如
l = ['A1','A2',..'A7']
rand_cell = random.choice(l)
现在要稍微自动化一下,您可以执行以下操作:
column = 'A'
row_range = list(range(2,8)) # [1,2,...7]
并从 row_range 中选择一个随机值并将两者连接起来
rand_cell = "{column}{row}".format(column = column, row = random.choice(row_range))
完整示例:
wb = load_workbook('Test_Workbook.xlsx')
ws = wb.active
column = 'A'
row_range = list(range(2,8)) # [1,2,...7]
rand_cell = "{column}{row}".format(column = column, row = random.choice(row_range))
print(ws[rand_cell])
推荐阅读
- c++ - CLSID_D2D1ChromaKey 问题
- reactjs - 调用 API 后 useState 不更新数组
- reactjs - React 新手:使用 async/await 获取请求将 userData 返回到组件中
- pandas - 期望一个字节对象,使用 cudf 得到一个“int”对象错误
- linux - debian/beagleboneblack 上的多个 IP 地址问题
- java - 如何在石英上下文中执行 db/jpa 操作?
- ios - SiriKit:在主应用程序中处理意图时如何设置输出属性?
- r - 根据列表的文本内容在 R 中赋值
- scala - Scala JSON 差异
- reactjs - React Router - 登录重定向到私有路由转到登录页面