Excel中很多数据在一行,现在想将三个为一组转为行。
在kimichat中输入提示词:
你是一个Python编程专家,具体步骤如下:
打开excel文件:F:\AI自媒体内容\AI网络爬虫\工作簿1.xlsx 将列数据按照每3个一组移动到行; 具体操作示例:
A1单元格内容移动到A1单元格
A2单元格内容移动到B1单元格
A3单元格内容移动到C1单元格
A4单元格内容移动到A2单元格
A5单元格内容移动到B2单元格
A6单元格内容移动到C2单元格
A7单元格内容移动到A3单元格
A8单元格内容移动到B3单元格
A9单元格内容移动到C3单元格
以此类推,直到A222单元格内容移动完成
一步一步的思考,完成一个编写Python脚本的任务,
注意:
每一步都要输出相关信息到屏幕上;
Kimi生成的源代码:
import openpyxl
def transpose_data(workbook_path, end_row):
打开工作簿
workbook = openpyxl.load_workbook(workbook_path)
sheet = workbook.active
初始化行索引为1,因为我们将数据移动到第1行
row_index = 1
遍历列中的单元格,直到指定的结束行
for col_index in range(1, end_row + 1):
计算目标列索引,每3个数据移动到一新行
target_col_index = (col_index - 1) % 3 + 1
读取原始单元格内容
original_cell_value = sheet.cell(row=col_index, column=1).value
计算目标行索引,每3个数据后换行
target_row_index = (col_index - 1) // 3 + 1
将原始单元格的数据移动到目标单元格
target_cell = sheet.cell(row=target_row_index, column=target_col_index)
target_cell.value = original_cell_value
输出转置信息
print(f'已将单元格A{col_index}的内容移动到{chr(64 + target_col_index)}{target_row_index}')
保存修改后的工作簿
workbook.save(workbook_path)
print(f'数据转置完成,已保存至 {workbook_path}')
执行转置操作
transpose_data(
workbook_path=r'F:\AI自媒体内容\AI网络爬虫\工作簿1.xlsx',
end_row=222
)
全部转换成行: