怎么用python库openpyxl操作excel,从源excel表中提取信息复制到目标excel表中

  介绍

了解怎么用python库openpyxl操作excel,从源excel表中提取信息复制到目标excel表中吗?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

现代生活中,我们很难不与excel表打交道,excel表有着易学易用的优点,只是当表中数据量很大,我们又需要从其他表册中复制粘贴一些数据(比如身份证号)的时候,我们会越来越倦怠,毕竟我们不是机器,没法长时间做某种重复性的枯燥操作。想象这样一个场景,我们有个几千行的表要填,需要根据姓名输入其对应的身份证号,但之前我们已经做过一个类似的表,同样的一些人的姓名跟身份证号是完整的,那么我们就需要通过一个个查找姓名,然后把身份证号码复制到我们当前要做的表里去。

当我日复一日重复着这些操作的时候,我都很想有一个自动化工具来完成这种操作,把做为人的我从这种非人的折磨里解脱出来,最后还是想到了python,因为这样我能很少的关注语言内部的一些细节,从而专注于解决这个问题。

其安装命令为pip安装openpyxl(在线安装)或者,easy_install openpyxl .

openpyxl的操作可以分四步,第一步载入现有工作簿或者创建工作簿到内存,分别使用

得到openpyxl  import  load_workbook   得到openpyxl  import 工作簿   #载入现有工作簿中   wb1=load_workbook (& # 39; lalala.xlsx& # 39;)   “““   在源表数据量很大的时候,这里我们可以使用openpyxl的read_only模式   载入源表,这样做的好处是不用把整个表都载入内存   “““=& # 39;wb1=load_workbook(文件名lalala.xlsx& # 39;, read_only=True)   #创建工作簿   wb2 =,工作簿()

第二步就是操作excel表中的单了,通过工作簿()创建的工作簿默认活动的表名称为表,可以通过python交互命令行进行验证。

#获取活动的表   ws =wb.active   #设置表的标题   时间=ws.title “range  names"   #创建以π为标题的表   时间=ws  wb.create_sheet (title=癙i")   #获取标题为Sheet1的表   ws=wb [& # 39; Sheet1& # 39;]

第三步就是操作表中的细胞了。需要注意的是,一个细胞的位置由它所在的列跟行共同决定,比如一个细胞,它在一个列,并在第三行,就可以通过ws (& # 39; a3 # 39;]来访问.cell还具有行跟列属性,cell.row跟细胞。列的数据类型如下图所示。

怎么用python库openpyxl操作excel,从源excel表中提取信息复制到目标excel表中

特别注意当用read_only模式载入工作簿时,cell.row跟cell.column都是int对象.cell.column记录的是细胞所在列离第一列的偏移数,并非工作簿中真正代表列数的大写字母,比如“A”。

#获取第一行,数据类型为tuplerow=ws[1] #获取一列数据类型为tuplecolumn=ws(& # 39;一个# 39;]#设置F5的值ws (& # 39; F5 # 39;]=& # 39; sfs # 39; #设置单元格的值ws (& # 39; F5 # 39;] https://www.yisu.com/zixun/value='你好' #获得细胞的行数m=ws (“F5”) .row #获得细胞的列数n=ws (“F5”) .column #获得特定区域的值,比如从F5到+ 30,数据类型为tuplek=ws (“F5”:“+ 30”) #获得特定区域的值,比如从F5到G30,数据类型为tuplej=ws (“F5”:“G30”) #获取表的最大行数row_count=ws.max_row #获取表的最大列数column_count=ws.max_column
最后一步把更改保存,这里要注意,当要保存的表在别的软件(微软办公或者wps)中打开时,保存操作会报错

wb1.save (& # 39; empty_book.xlsx& # 39;)   wb2.save(文件名=& # 39;other_book.xlsx& # 39;)

实现需求

新建一个get_info_from_excel。py文件,用你习惯的编辑器来编辑,首先需要引入openpyxl库中的load_workbook模块。可以使用load_workbook载入已经存在的excel表。

得到openpyxl  import  load_workbook

我们的目的是从源excel表中提取信息并批量复制到目标excel表中,所以我们首先定义一些变量。

#源表名称   source_file_name=& # 39; lalala.xlsx& # 39;   #目标表名称   target_file_name=& # 39; lelele.xlsx& # 39;   #源表中要提取信息的表   source_sheet_name=& # 39; Sheet2& # 39;   #目标表中要批量复制信息的表   target_sheet_name=& # 39; Sheet2& # 39;   #源表中的标题行在哪一行   source_header_row=3   #目标表中的标题行在哪一行   target_header_row=2   #源表中要根据哪一列数据提取信息,根据源表标题行   source_cell_condition=& # 39;姓名& # 39;   #目标表中要根据哪一列数据复制信息,根据目标表标题行   target_cell_condition=& # 39;姓名& # 39;   #源表中要提取信息的列   source_cell_filled=& # 39;身份证号& # 39;   #目标表中要复制信息的列   target_cell_filling=& # 39;身份证号& # 39;

怎么用python库openpyxl操作excel,从源excel表中提取信息复制到目标excel表中