欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在python中利用openpyxl模块,将excel工作簿中所有工作表横向翻转

程序员文章站 2024-02-23 19:39:52
...

之前有编写过一小段将.csv文件进行横向翻转的代码,现在遇到了更复杂的情况,稍微学习openpyxl模块后写了解决方案

from openpyxl import Workbook, load_workbook
from openpyxl.utils.dataframe import dataframe_to_rows
import pandas as pd

'''
脚本使用openpyxl模块将一个excel工作簿内的所有工作表进行完全横向翻转
'''

# 待处理对象文件名
filename = 'filename.xlsx'
# 导入原工作簿
wb1 = load_workbook(filename)
# 新建工作簿
wb2 = Workbook()
sheet_names = wb1.sheetnames
for i in range(len(sheet_names)):
    name = sheet_names[i]
    sheet = wb1[name]
    # -----sheet转为dataframe并翻转-----
    columns_num = len(list(sheet.columns))  # 读取列数
    df = pd.DataFrame(sheet.values)
    df = df.sort_index(axis=1, ascending=False)  # 按列标签进行降序排列
    # -----创建新表,dataframe写入sheet-----
    ws = wb2.create_sheet(name)
    for row in dataframe_to_rows(df, index=False, header=False):
        ws.append(row)
# 删除初始的worksheet
wb2.remove(wb2['Sheet'])
wb2.save(filename)