|
发表于 2023-11-24 16:12:07
|
显示全部楼层
使用`xlrd`库读取Excel文件时,默认情况下它只能读取到公式的原始文本内容,而不是计算后的值。要获取公式计算后的数值,可以使用`xlrd`库结合`openpyxl`库来实现。以下是示例代码:
- import xlrd
- import openpyxl
- filename = r'\\A\模板.xlsx'
- # 使用openpyxl加载Excel文件,设置data_only=True来获取计算后的值
- wb = openpyxl.load_workbook(filename, data_only=True)
- # 使用xlrd打开Excel文件
- excel_data = xlrd.open_workbook(filename)
- # 遍历每个工作表
- for sheet_name in excel_data.sheet_names():
- sheet = excel_data.sheet_by_name(sheet_name)
-
- # 遍历每行数据
- for row in range(sheet.nrows):
- # 遍历每个单元格
- for col in range(sheet.ncols):
- cell_value = sheet.cell_value(row, col)
-
- # 如果单元格的值是公式,则使用openpyxl获取计算后的值
- if isinstance(cell_value, str) and cell_value.startswith('='):
- openpyxl_sheet = wb[sheet_name]
-
- # 获取公式计算后的值
- result = openpyxl_sheet.cell(row=row+1, column=col+1).value
- print(result)
- # 关闭Excel文件
- wb.close()
- excel_data.release_resources()
复制代码
在以上代码中,我们首先使用`openpyxl`库加载Excel文件,并设置`data_only=True`来获取计算后的值。然后,使用`xlrd`库打开同一个Excel文件。接下来,我们遍历每个工作表和每个单元格,如果单元格的值是公式,我们通过使用`openpyxl`库来获取公式计算后的值,并打印出来。
请注意,为了使用`xlrd`和`openpyxl`库,你需要在系统中安装这两个库。可以使用以下命令来安装:
- pip install xlrd openpyxl
复制代码
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 |
|