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

)

全部转换成行: