-
批量新增excel文件
pythonimport os import xlwings as xw app = xw.App(visible=True,add_book=False)#visible设置为ture的时候会自动打开创建的excel文件,设为为false的时候不会看到excel文件打开了,实际进程占用了.... dept_list = ['人事部','财务部','研发部','行政部'] path = os.path.abspath(os.path.abspath(os.path.dirname(__file__))) dept_path = os.path.join(path,'excel文件') for dept in dept_list: workbook = app.books.add() workbook.save(f'{dept_path}/部门业绩-{dept}.xlsx')
-
批量打开excel文件
pythonimport os import xlwings as xw app = xw.App(visible=True,add_book=False) for dir,curdir,files in os.walk(dept_path): if files: for file in files: file_path = os.path.join(dir,file) if file.endswith('.xlsx'): app.books.open(file_path)
-
批量修改excel文件工作表名
import os import xlwings as xw app = xw.App(visible=False,add_book=False) path = os.path.abspath(os.path.abspath(os.path.dirname(__file__))) dept_path = os.path.join(path,'excel文件') #批量修改 【部门业绩-行政部.xlsx 】 这个文件的工作表名 workbook =app.books.open(f'{dept_path}\部门业绩-行政部.xlsx') for sheet in workbook.sheets: sheet.name = sheet.name.replace('Sheet','部门') workbook.save() app.quit()
4.合并相似excel文件内容到一个excel(只会合并每个excel第一个sheet页的内容)
python
import pandas as pd
data_list = []
for dir,curdir,files in os.walk(dept_path):
if files:
for file in files:
file_path = os.path.join(dir,file)
if file.endswith('.xlsx') and file.startswith('部门业绩-'):
data_list.append(pd.read_excel(file_path))
data_all = pd.concat(data_list)
data_all.to_excel('部门业绩.xlsx')
-
合并一个excel文件多个sheet页内容到第一个sheet页中
pythonimport pandas as pd import xlwings as xw file = f'{dept_path}\部门业绩-行政部.xlsx' df_list = pd.read_excel(file,sheet_name=None) df_all = pd.concat(df_list.values()) app=xw.App(visible=False,add_book=False) workbook = app.books.open(file) workbook.sheets.add('汇总表',before=workbook.sheets[0]) workbook.sheets['汇总表'].range('A1').options(index=False).value=df_all workbook.save() workbook.close() app.quit()
-
拆分excel表(按照某个分类拆分成不同的excel表)
pythonimport pandas as pd file = f'{dept_path}\产品表.xlsx' df= pd.read_excel(file) products = df['产品类型'].unique() #去重获取产品类型这一列所有产品 for product in products: df_product = df[df['产品类型']==product] df_product.to_excel(f'{dept_path}\产品表-{product}.xlsx')
-
拆分excel表(按照某个分类拆分成不同的sheet页)
pythonimport pandas as pd file = f'{dept_path}\采购表.xlsx' #读取所有sheet页 df_list= pd.read_excel(file,sheet_name=None,parse_dates=False) #合并成一个大数据表 df_all = pd.concat(df_list.values()) file2 = f'{dept_path}\采购表-按产品类分.xlsx' excel_writer = pd.ExcelWriter(file2,date_format='YYYY-MM-DD') for product,df in df_all.groupby('产品类型'): df.to_excel(excel_writer,product,index=False) excel_writer.save()
-
比较2个excel文件内容
pythonimport os import xlwings as xw app = xw.App(visible=False,add_book=False) file = f'{dept_path}\产品表.xlsx' file_back = f'{dept_path}\产品表-备份.xlsx' book = app.books.open(file) book_backup = app.books.open(file_back) for row in book.sheets[0].range('A1').expand(): for cell in row: backup_cell = book_backup.sheets[0].range(cell.address) if cell.value != backup_cell.value: cell.color = backup_cell.color = (255,0,0) book.save() book.close() book_backup.save() book_backup.close() app.quit()