【Python编程快速上手】【实践项目】openpyxl模块-电子表格单元格翻转程序

项目说明

编写一个程序,翻转电子表格中行和列的单元格。例如,第5 行第3 列的值将出现在第3 行第5 列(反之亦然)。这应该针对电子表格中所有单元格进行。例如,之前和之后的电子表格应该看起来如下图所示。
这里写图片描述
程序可以这样写:
利用嵌套的for 循环,将电子表格中的数据读入一个列表的列表。这个数据结构用sheetData[x][y]表示列x 和行y 处的单元格。然后,在写入新电子表格时,将sheetData[y][x]写入列x 和行y 处的单元格。


代码块

#! /usr/bin/env python3
# overturnForm.py - 翻转表格中行和列的单元格

import openpyxl

wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.active

sheetData = []                                               # 建立一个"工作表列表"
for i in range(1, sheet.max_row + 1):                        # 以循环的方式将内嵌循环所得的"行列表"数据插入到"工作表列表中"
    rowData = []                                             # 建立一个"行列表"
    for j in range(1, sheet.max_column + 1):                 # 以循环的方式将每行的单元格插入到"行列表"中
        rowData.append(sheet.cell(row=i, column=j).value)
    sheetData.append(rowData)

wbNew = openpyxl.Workbook()                                  # 建立一个新的工作簿
sheetNew = wbNew.active

for i in range(1, sheet.max_column + 1):                     # 以循环的方式将工作表列表中的数据复制到相对应的新的单元格中
    for j in range(1, sheet.max_row + 1):                    # i行j列的数据复制到新表中的j行i列
        sheetNew.cell(row=i, column=j).value = sheetData[j-1][i-1]

print('Done!')
wbNew.save('example_copy.xlsx')

猜你喜欢

转载自blog.csdn.net/simplelearner/article/details/82189017