在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)