使用openpyxl将Excel 40×40表格转换为64×40:每隔5行插入3行零
实现方法
以下是用openpyxl完成需求的代码,核心逻辑是按5行一组遍历原数据,每组后插入3行全零行:
from openpyxl import load_workbook from openpyxl.utils import get_column_letter # 加载原Excel文件 wb = load_workbook('your_source_file.xlsx') source_ws = wb.active # 创建新工作表存放转换结果 target_ws = wb.create_sheet(title='Converted_Result') current_target_row = 1 # 遍历原表的40行数据 for source_row in range(1, 41): # 复制当前行的40列数据到新表 for col in range(1, 41): target_ws[f'{get_column_letter(col)}{current_target_row}'] = source_ws[f'{get_column_letter(col)}{source_row}'].value current_target_row += 1 # 每处理完5行,插入3行全零行(含最后一组5行之后) if source_row % 5 == 0: for _ in range(3): for col in range(1, 41): target_ws[f'{get_column_letter(col)}{current_target_row}'] = 0 current_target_row += 1 # 保存转换后的文件 wb.save('your_target_file.xlsx')
关键说明
- 代码会在原工作簿中新建工作表,不会修改原始数据
- 替换代码中的
your_source_file.xlsx和your_target_file.xlsx为实际文件路径 - 原表数据需从第1行第1列开始,若实际起始位置不同,调整
range(1, 41)的参数即可 - 40行数据分成8组5行,每组后插入3行零,最终得到40 + 8×3 = 64行,符合需求
内容的提问来源于stack exchange,提问作者Rue B
相关产品推荐
相关产品推荐

