点击关注州的先生

编程应用、实战教程,不容错过

在工作中经过会遇到大量格式一致,内容不同的Excel表格文件,需要将这里面的内容整理到一个Excel文件中的情形。一般情况下,都是将这些Excel表格文件一个一个地打开,将里面的内容复制,然后粘贴到一个新的Excel表格文件中。不仅费时费力还容易出错,Excel文件比较少还好,要是有几十个几百个,那会把自己逼疯了去。今天,州的先生(https://zmister.com)来介绍一下使用Python快速处理这种繁琐的Excel整理工作,代码少,速度快,效果好!

一、应用场景

很多贸易类型的公司都会不定期地对公司的产品进行内购处理,既能给实惠予员工,又能清理库存。在这里,我们假设行政小姐姐需要制作一个“员工内购信息登记表”的模板Excel,让所有员工填好之后,私信发给自己,自己再进行整理汇总所有的内购信息。模板如下图所示:

原本以为没有多少员工会买,但是却收到了将近一百份的Excel。这要是一个一个复制粘贴,那不得整得手抽筋。

嗯,是时候让Python上场了。

二、批处理Excel

在这里,我们需要使用到两个核心的模块:xlrd和xlsxwriter。xlrd用于读取Excel文件内容,xlsxwriter用于创建和写入Excel内容。引入相关的模块:

import xlsxwriterimport os.pathimport xlrd

我们首先实例化一个xlsxwriter的Workbook(),这将创建一个Excel文件:

workbook = xlsxwriter.Workbook('./员工内购信息登记表-汇总.xlsx')

然后,利用add_worksheet()方法添加一个工作簿:

worksheet = workbook.add_worksheet()

我们看到表格模板中的第一行是标题,它的格式是加粗居中,并且合并了几个单元格,我们通过代码来实现:

# 粗体居中格式boold_center = workbook.add_format({'bold':True,'align':'center'})# 写入标题worksheet.merge_range("A1:E1", "员工内购信息登记表",boold_center)

在这里,我们通过add_format()方法创建了一个格式,通过merge_range()方法合并了几个单元格。下面是各个数据项的名称,它们是:部门、姓名、物品编号、数量和收货地址,均需要设置加粗格式:

# 添加一个粗体格式bold = workbook.add_format({'bold': True})# 在Excel中写入项目名称worksheet.write('A2',"部门",bold)worksheet.write('B2',"姓名",bold)worksheet.write('C2',"物品编号",bold)worksheet.write('D2',"数量",bold)worksheet.write('E2',"收货地址",bold)

通过write()方法可以直接在指定单元格中写入内容,这样就完成了标题和数据项的写入,下面轮到实际的数据值了。我们通过os.listdir()方法遍历指定目录下的文件,然后通过xlrd模块的open_workbook()方法打开遍历到的Excel文件,随后读取相应单元格的内容,接着将内容写入到新创建的Excel文件的工作簿,最后关闭新建的Excel:

n = 3for i in os.listdir('./'):    # print(n)    if i.startswith('~') is False and i.endswith('xlsx'):        # print(i)        file = xlrd.open_workbook(i)        info = file.sheet_by_index(0)        department = info.cell(2,0).value # 部门        name = info.cell(2,1).value # 姓名        product_no = info.cell(2,2).value # 物品编号        num = info.cell(2,3).value # 数量        address = info.cell(2,4).value # 地址        worksheet.write("A{}".format(n),department)        worksheet.write("B{}".format(n),name)        worksheet.write("C{}".format(n),product_no)        worksheet.write("D{}".format(n),num)        worksheet.write("E{}".format(n),address)        print("完成{}数据提取".format(i))        n += 1workbook.close()

这样,就完成了这个Excel表格内容批处理代码的编写。运行上述代码,几秒钟后,我们就可以得到一个名为“员工内购信息登记表-汇总.xlsx”的Excel文件:

里面已经把所有Excel文件里面的数据都整理汇总到了一起,如下图所示:

这样,我们就通过Python用几十行代码轻松地处理了这个繁琐的Excel整理工作。

学会了吗?欢迎留言讨论~

▼点击“

万水千山总是情,点个“在看”行不行▼

excel 复制数据 sql server 粘贴_几百个Excel表格的内容要复制粘贴,如何一键自动化搞定?| 州的先生...相关推荐

  1. excel 复制数据 sql server 粘贴_数据资料复制粘贴麻烦?教你硬盘对拷资料

    什么是硬盘对拷?其实也就是将硬盘的引导文件.启动BOOT.分区表.各类文件.资料等数据拷贝至另一个硬盘中,虽然其过程与复制粘贴有点类似,但实际并非是简单的复制粘贴.那么如何实现硬盘对拷?下面小编分享一 ...

  2. excel 复制数据 sql server 粘贴_一个Excel妙招,一个SQL技巧,解决批量数据插入问题

    #Excel技巧# #数据库# #MySQL# 业务背景 不知道您在工作中有没有遇到过这样几种情况: 业务定期给你一批数据结构相同的名单或者数据,要求你插入到库里并进行处理. 机器学习指标加工时,一个 ...

  3. excel 复制数据 sql server 粘贴_win32 实现 excel 快速复制粘贴

    直接简明说:该方法可以直接将一张代码的区域内容直接 copy 到另一张表上,并且字体颜色.背景.格式都不变,另外还可以 copy 公式(相当于 excel 下拉公式) from win32com.cl ...

  4. ueditor如何设置上传图片的高度宽度_上百张图片上传并对齐,你加班2小时没搞定,同事简单三步就完成...

    Excel除了汇总数据还可以上传保存相片,比如我们在人力信息表中将每个人的相片放到表格里面去,或者我们需要将宠物对应的相片放到表格里面去,这就涉及到图片的批量上传以及对齐的操作. 如图所示,我们需要将 ...

  5. 如何将数据从Excel文件导入SQL Server数据库

    There are many ways to import data from an Excel file to a SQL Server database using: 有多种方法可以使用以下方法将 ...

  6. sql server 快照_在SQL Server合并复制中应用快照时出现外键问题

    sql server 快照 This article will review specific SQL Server merge replication issues related to forei ...

  7. 使用SQL Server事务复制将SQL Server数据库迁移到Azure SQL数据库

    In this guide, we'll discuss more about migrating a SQL Server database to Azure SQL Database using ...

  8. python slicer_报表筛选:Excel Slicer与SQL Server Reporting Services(SSRS)参数

    python slicer This article explores the report filtering using Excel Slicer and SQL Server Reporting ...

  9. 服务器腾讯通文件数据源导入,连接到 Excel 数据源(SQL Server 导入和导出向导)...

    连接到 Excel 数据源(SQL Server 导入和导出向导) 04/02/2018 本文内容 适用于: SQL Server(所有支持的版本) Azure 数据工厂中的 SSIS Integra ...

最新文章

  1. Powerdesigner逆向工程64位Oracle数据库
  2. qt5中字符串转字符串数组_Qt中的对象类型转换(Qstring 转换char*有三种方法)
  3. 网络推广公司介绍几个能提升网站收录的“隐藏版”小技巧!
  4. eclipse 安装svn插件
  5. spring注入出错
  6. Python日志详解【两篇就够了系列】--第一篇logging
  7. Hadoop生态系统介绍
  8. 图的广度优先遍历和深度优先遍历
  9. c语言ch能储存多少字符,二级c语言程序设计习题与解答ch5-7函数字符(11页)-原创力文档...
  10. 可以替代basemap的几个工具
  11. No package ‘gtksourceview-4‘ found
  12. 跳马问题C++递归调用
  13. [Unity][NGUI]悬浮点击空白区域隐藏UI
  14. 如何使用python寻找K线中的黄昏之星
  15. 多任务系统(操作系统)
  16. 电影院订票选座网站系统 毕业设计毕设源码毕业论文参考(2)前台功能
  17. 化妆品行业 垂直电商
  18. 公司想要做CMMI认证,须先了解这几点!
  19. 是我自己错了,错错错……
  20. java识别3D打印图_如何识别3D打印FDM机器结构i3、并联臂、UM、MB

热门文章

  1. fatal error C1189: #error : Building MFC application with /MD[d]
  2. 《深入理解Java虚拟机》笔记6——高效并发
  3. 基于epoll实现简单的web服务器
  4. TCP报文段首部格式详解
  5. Chrome控制台使用详解 1
  6. 使用 C++ 的 StringBuilder 提升 4350% 的性能
  7. Oracle编程入门经典 第4章 新9i示例模式
  8. 中国计算机学会CCF推荐国际学术会议和期刊目录-数据库/数据挖掘/内容检索
  9. 鸟哥的Linux私房菜(基础篇)-第一章、Linux是什么(一.2. Torvalds的Linux发展)
  10. 我的python之路(四):列表