如何用Python(openpyxl)将多个TXT文件内容导入单个Excel不同工作表?
使用openpyxl将多个TXT文件导入单个Excel工作簿的不同工作表
以下是针对需求的实现方案,基于你提供的TXT文件示例,用openpyxl完成多文件对应多工作表的导入:
实现步骤
- 导入
openpyxl库用于Excel操作,os库用于文件遍历 - 创建新的Excel工作簿对象
- 为每个TXT文件创建对应名称的工作表
- 读取TXT文件内容,拆分每行数据并写入对应工作表
- 保存最终的Excel文件
代码示例
import openpyxl import os # 创建新工作簿 wb = openpyxl.Workbook() # 删除默认生成的空白Sheet(可选,避免多余工作表) wb.remove(wb['Sheet']) # 指定TXT文件所在目录(当前目录填'.'即可) txt_dir = '.' # 获取目录下所有TXT文件 txt_files = [f for f in os.listdir(txt_dir) if f.endswith('.txt')] for txt_file in txt_files: # 提取文件名作为工作表名称(去掉.txt后缀) sheet_name = os.path.splitext(txt_file)[0] # 创建对应工作表 ws = wb.create_sheet(title=sheet_name) # 读取TXT文件内容 file_path = os.path.join(txt_dir, txt_file) with open(file_path, 'r', encoding='utf-8') as f: lines = f.readlines() # 逐行处理并写入数据 for row_idx, line in enumerate(lines, start=1): # 去除换行符,按空格拆分数据(如果是制表符分隔,改为split('\t')) data = line.strip().split() # 写入单元格,数字自动转为数值类型 for col_idx, value in enumerate(data, start=1): try: ws.cell(row=row_idx, column=col_idx, value=int(value)) except ValueError: ws.cell(row=row_idx, column=col_idx, value=value) # 保存Excel文件 wb.save('txt_to_multi_sheet.xlsx')
额外说明
- 代码会自动遍历指定目录下的所有TXT文件,每个文件对应一个工作表,表名与TXT文件名一致
- 若不需要批量遍历,可手动指定文件列表,比如
txt_files = ['file1.txt', 'file2.txt', 'file3.txt'] - 支持自定义分隔符,只需修改
split()的参数即可适配不同格式的TXT文件
内容的提问来源于stack exchange,提问作者rose
相关产品推荐
相关产品推荐

