openpyxl写入已有数据Excel中的指定某一列不改变Excel文件原有数据
时间: 2024-01-23 21:03:14 浏览: 24
可以通过openpyxl模块中的load_workbook函数来加载已有的Excel文件,并通过指定的列名来写入数据而不影响原有数据。以下是一个示例代码:
```python
import openpyxl
# 加载已有Excel文件
workbook = openpyxl.load_workbook('example.xlsx')
# 获取需要写入的工作表和列
worksheet = workbook['Sheet1']
column = worksheet['A']
# 写入数据到指定列中
for i in range(1, len(column) + 1):
cell = column[i - 1]
cell.value = i
# 保存修改后的Excel文件
workbook.save('example.xlsx')
```
在上面的代码中,我们首先使用load_workbook函数加载了一个名为"example.xlsx"的Excel文件。然后,我们获取了工作表"Sheet1"中的第一列(A列),并通过一个循环将1到列数之间的数字写入到每个单元格中。最后,我们使用save函数将修改后的Excel文件保存回磁盘中。需要注意的是,这个操作会覆盖原有的Excel文件,所以在执行之前最好备份一下原始文件。
相关问题
openpy写入Excel中指定某一列不改变Excel文件原有数据
可以使用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,并保存为同名文件。在赋值新值时,使用了一个三元表达式来保留原有数据的值。如果原有数据为空,则新值也为空。
openpyxl将一组数据写入到excel指定列
可以使用openpyxl中的方法将一组数据写入到excel指定列。以下是一个示例代码:
```python
from openpyxl import Workbook
# 创建Workbook对象
wb = Workbook()
# 选择第一个Sheet
ws = wb.active
# 定义要写入的数据
data = ["apple", "banana", "orange", "pear"]
# 将数据写入到第一列,从第二行开始
for i, value in enumerate(data):
ws.cell(row=i+2, column=1, value=value)
# 保存文件
wb.save("example.xlsx")
```
在这个示例中,我们创建了一个Workbook对象,并选择了第一个Sheet。然后定义了要写入的数据,并使用循环将数据写入到第一列,从第二行开始。最后保存文件。
需要注意的是,行和列都是从1开始计数的,所以写入到第一列时,需要从第二行开始。另外,如果要写入到其他列,只需要修改column的值即可。