写一个python代码,批量编辑excel,前三列写入另一个excel前三列数据,第四列批量写入文件夹内txt数据
时间: 2024-05-08 21:16:02 浏览: 97
以下是一个示例代码,可以根据自己的具体需求进行修改:
```python
import os
import openpyxl
# 设置源文件和目标文件路径
source_file = 'source.xlsx'
target_file = 'target.xlsx'
# 设置txt文件夹路径
txt_folder = './txt_files/'
# 获得txt文件夹内所有txt文件的文件名列表
txt_files = os.listdir(txt_folder)
txt_files = [f for f in txt_files if os.path.splitext(f)[1] == '.txt']
# 加载源文件和目标文件
source_wb = openpyxl.load_workbook(source_file)
target_wb = openpyxl.load_workbook(target_file)
# 获取源文件和目标文件的第一个工作表
source_sheet = source_wb.worksheets[0]
target_sheet = target_wb.worksheets[0]
# 遍历源文件中的每一行,将前三列复制到目标文件中,并从txt文件夹中读取对应行的txt数据写入第四列
for row in source_sheet.iter_rows():
data = [cell.value for cell in row[:3]]
target_sheet.append(data)
row_index = row[0].row - 1
if row_index < len(txt_files):
with open(txt_folder + txt_files[row_index], 'r') as f:
txt_data = f.read()
target_sheet.cell(row=target_sheet.max_row, column=4, value=txt_data)
# 保存目标文件
target_wb.save(target_file)
```
这个代码的基本思路是:
1. 通过 `openpyxl` 库加载源文件和目标文件;
2. 遍历源文件中的每一行,将前三列复制到目标文件中;
3. 从txt文件夹中读取对应行的txt数据,并将其写入目标文件的第四列;
4. 保存目标文件。
请注意,这个代码假设txt文件的文件名与源文件中的行数对应,因此在使用时需要根据实际情况进行修改。
阅读全文