需要openpyxl读取表格的单元格为值而不是公式
时间: 2023-09-30 12:13:24 浏览: 109
Python读取excel文件中带公式的值的实现
可以使用openpyxl的`.value`属性来读取单元格的值而不是公式。
例如,假设你要读取A1单元格的值而不是公式,可以使用以下代码:
```python
import openpyxl
# 打开工作簿
wb = openpyxl.load_workbook('example.xlsx')
# 选择工作表
ws = wb.active
# 读取A1单元格的值
value = ws['A1'].value
print(value)
```
如果A1单元格包含公式,但你想要读取其计算结果,可以使用`openpyxl.utils.cell`模块中的`get_column_letter()`和`coordinate_from_string()`函数来获取单元格的列字母和行号,然后使用`.value`属性来读取计算结果。例如,假设A1单元格包含公式`=B1+C1`,你可以使用以下代码来读取其计算结果:
```python
import openpyxl
from openpyxl.utils.cell import get_column_letter, coordinate_from_string
# 打开工作簿
wb = openpyxl.load_workbook('example.xlsx')
# 选择工作表
ws = wb.active
# 读取A1单元格的计算结果
formula = ws['A1'].value
if formula.startswith('='):
# 获取B1和C1单元格的值
col_b, row_b = coordinate_from_string('B1')
col_c, row_c = coordinate_from_string('C1')
value_b = ws[col_b + str(row_b)].value
value_c = ws[col_c + str(row_c)].value
# 计算A1单元格的值
col_a, row_a = coordinate_from_string('A1')
ws[col_a + str(row_a)].value = value_b + value_c
# 读取A1单元格的值
value = ws['A1'].value
print(value)
```
阅读全文