python 對數據分類並寫入不同工作表


需求:

 

 方法1、 循環插入表、寫入值

import os import pandas as pd import openpyxl wb_in = 'E:\\excel_vba\\test.xlsx'
df = pd.read_excel(wb_in) wb = openpyxl.load_workbook(wb_in) # 加載工作表 new_sheet_name = df['班級'].drop_duplicates()
for k, name in enumerate(new_sheet_name): sheet = wb.create_sheet(title=name)  # 插入工作表,指定名稱,index 參數默認為 -1 # 寫入表頭 for i, v in enumerate(df.columns): sheet.cell(row=1, column=i+1).value = v for i, row in enumerate(df[df['班級']==new_sheet_name[k]].values):
        for j, v in enumerate(row): sheet.cell(row=i+2, column=j+1).value = v # 第 2 行, 第 1 列開始寫入數據 wb_out = os.path.join(os.path.dirname(wb_in), 'test_1.xlsx')
wb.save(wb_out)

 

方法2、直接保存 DataFrame

import os import pandas as pd import openpyxl wb_in = 'E:\\excel_vba\\test.xlsx'
wb_out = os.path.join(os.path.dirname(wb_in), 'test_1.xlsx')
df = pd.read_excel(wb_in) new_sheet_names = df['班級'].drop_duplicates() book = openpyxl.load_workbook(wb_in) writer = pd.ExcelWriter(wb_out, engine='openpyxl') writer.book = book for name in new_sheet_names: df_a = df[df['班級']==name] df_a.to_excel(writer, sheet_name=name, index=False) writer.save()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM