openpy写入Excel中指定某一列不改变Excel文件原有数据
时间: 2024-05-02 20:21:07 浏览: 10
可以使用openpyxl库中的load_workbook函数来加载已有的Excel文件,然后通过Worksheet对象的cell函数来指定需要修改的单元格,最后使用save函数保存修改后的Excel文件。
但是,为了不改变Excel文件原有数据,我们需要在写入数据时,保留原有数据的值。可以通过Worksheet对象的iter_rows函数来遍历指定列的所有单元格,然后使用value属性获取单元格的值,再将需要修改的单元格的值赋值为新值即可。
下面是一个示例代码:
```python
from openpyxl import load_workbook
# 加载Excel文件
workbook = load_workbook('example.xlsx')
# 获取需要操作的Worksheet对象
worksheet = workbook['Sheet1']
# 遍历指定列的所有单元格
for row in worksheet.iter_rows(min_row=2, min_col=3, max_col=3):
for cell in row:
# 获取单元格的原有值
old_value = cell.value
# 计算新值
new_value = old_value + 1
# 将新值赋值给单元格,保留原有数据的值
cell.value = new_value if old_value else None
# 保存Excel文件
workbook.save('example.xlsx')
```
这段代码会将example.xlsx文件中第3列的所有单元格的值加1,并保存为同名文件。在赋值新值时,使用了一个三元表达式来保留原有数据的值。如果原有数据为空,则新值也为空。