python-批量操作excel

  1. 批量新增excel文件

    python 复制代码
    	import 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')
  2. 批量打开excel文件

    python 复制代码
    import 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)
  3. 批量修改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')
  1. 合并一个excel文件多个sheet页内容到第一个sheet页中

    python 复制代码
    import 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()
  2. 拆分excel表(按照某个分类拆分成不同的excel表)

    python 复制代码
    import 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')
  3. 拆分excel表(按照某个分类拆分成不同的sheet页)

    python 复制代码
    import 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()
  4. 比较2个excel文件内容

    python 复制代码
    import 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()
相关推荐
xwlcfyb6 分钟前
零基础学好C语言系列第八讲:初识指针
c语言·开发语言
非 白8 分钟前
【Java分布式】Nacos注册中心
java·开发语言·nacos·注册中心
88号技师9 分钟前
2025年2月最新SCI-鹰鱼优化算法HawkFish Optimization Algorithm-附Matlab免费代码
开发语言·算法·matlab·优化算法
Joey_friends1 小时前
【Linux】线程详解
开发语言
紫雾凌寒1 小时前
计算机视觉 |解锁视频理解三剑客——TimeSformer
python·深度学习·神经网络·计算机视觉·transformer·timesformer
_GR1 小时前
Qt开发⑧Qt的窗口_下_浮动窗口+对话框
开发语言·css·c++·qt·microsoft
Good Note1 小时前
Golang——常用库context和runtime
开发语言·爬虫·golang
程序员杰哥2 小时前
测试用例详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
清河__2 小时前
【Go】十七、grpc 服务的具体功能编写
开发语言·后端·golang
张声录12 小时前
国密算法Sm2工具类--golang实现版
开发语言·后端·golang