我想从Python脚本中读取Excel工作表中的数据,并使用读取的数据填充XML文件。不幸的是,Excel工作表/表单包含复选框和下拉列表。我无法使用下面的代码从其单元格中获取下拉列表的值。
>> out{1}
ans =
struct with fields:
val1: 10
val2: 70
>> out{2}
ans =
struct with fields:
val1: 1000
val2: 2050
有人知道解析复选框等Excel元素和使用Python下拉列表的方法吗?
答案 0 :(得分:0)
您可以使用win32com来运行Excel(假设您的计算机上有Windows和Excel),而不是使用读取Excel文件的库。然后,您可以使用VBA文档来帮助您浏览Excel。
我必须使用包含与单元格无关的复选框的电子表格来执行此操作。所有复选框都有默认名称(例如"复选框1和#34;),所以我按名称搜索它们。
from win32com.client import gencache
excel = gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(r"C:\Temp\MySpreadsheet.xlsx")
ws = wb.Worksheets.Item(1)
print('Shape count: %s' % len(ws.Shapes))
for shape in ws.Shapes:
if shape.Type == 8: # form control
if 'Check Box' in shape.Name:
print('%s: %s' % (shape.AlternativeText, shape.ControlFormat.Value))
显然,复选框的值为1.0(true)或-4146(false)。
您可以轻松获取其他信息,例如工作表的名称或单元格的值。
print(ws.Name)
print(ws.Range('C10'))