python操作excel使两个文件中特定列中同名的单元格数据合并
时间: 2023-09-12 21:07:07 浏览: 275
以下是一个示例代码,可以实现将两个Excel文件中指定列中相同的单元格数据合并:
```python
import openpyxl
# 打开第一个Excel文件
wb1 = openpyxl.load_workbook('file1.xlsx')
sheet1 = wb1.active
# 打开第二个Excel文件
wb2 = openpyxl.load_workbook('file2.xlsx')
sheet2 = wb2.active
# 指定需要合并的列
merge_col = 'A'
# 获取第一个Excel文件中需要合并的列的数据
data1 = {}
for row in sheet1.iter_rows(min_row=2, values_only=True):
if row[0] not in data1:
data1[row[0]] = []
data1[row[0]].append(row[1])
# 获取第二个Excel文件中需要合并的列的数据
data2 = {}
for row in sheet2.iter_rows(min_row=2, values_only=True):
if row[0] not in data2:
data2[row[0]] = []
data2[row[0]].append(row[1])
# 在第一个Excel文件中添加新列,用于存放合并后的数据
sheet1.insert_cols(2)
# 将两个文件中相同的单元格数据合并到第一个Excel文件中
for key in data1:
if key in data2:
merged_data = list(set(data1[key] + data2[key]))
sheet1.cell(row=list(data1.keys()).index(key) + 2, column=2).value = ', '.join(merged_data)
# 保存修改后的Excel文件
wb1.save('merged_file.xlsx')
```
这段代码的逻辑是先分别读取两个Excel文件中指定列的数据,然后将它们合并到第一个Excel文件的新列中。具体实现细节详见注释。
阅读全文