xcel是坐着电脑前百分之九十九的人都会不用的办公软件,东西少还好说,那样存入表格也简单,但是当你的数据达到几万几十万,几百万那就恐怖了,如果全靠手动,那么你至少要连上一个月的班了,不能停息的那种!可见这时候就考虑到技术方面的能力了,很多东西都可以自动实现,如果手动的话,真不知道搞到何年何月了,耗时不说,关键没有什么意义!好了回归正题,手把手教你如何利用Python来操作Excel!
给大家整理了Python很全面的资料和教程可以下载,加群943752371即可
安装好openpyxl后,通过import语句导入,再通过执行help方法,看看openpyxl库中包含哪些东西,不需要认识,有个印象就行。
里面有一些单词还是很熟悉的吧,比如cell单元格、chart图表、styles样式、workbook工作簿、worksheet工作表,除了用help方法,还可以使用dir方法来查看一个库的所有成员,我把我们一会儿可能会用到的一些已经标红了,大家在学习的过程中可以重点关注下。
下面给出一些基本操作示例,大家可照着写一下。
再秀一下操作,一下子读取指定行列的单元格,用到了iter_rows方法,表示在参数指定范围内按行迭代,如果想要按列迭代的话可以使用iter_cols方法。
上面的代码展示了如何操作一个已有的Excel文件,下面再看一下新建一个Excel的例子。
生成的Excel文件如下图所示:
OK,是不是感觉操作Excel很简单啊,那是因为你在这一段时间的Python学习中进步了,给自己一个赞!openpyxl官方文档的地址是:http://openpyxl.readthedocs.io/en/stable/,打开主页后,让我们先膜拜一下Eric Gazoni和Charlie Clark大神,没有你们俩,估计我还在一个字一个字的改Excel呢!
上面的知识点还是不少的,比如最后一句,Workbook是一个文档所有其余部分的容器。怪不得,一开始就要把Workbook创建好。Workbook被创建的时候至少包含一个worksheet,即工作表,可以通过Workbook.active()方法来定位到该工作表。acitve方法使用了 the _active_sheet_index属性,该属性值默认为0,当然你也可以设置为其他值。
除了在创建工作表的时候设置名字,Python 3也支持任意时候通过修改属性title来更改工作表的名字,我们先给个代码,再作解释。
为什么wb['Sheet']就能定位到工作表Sheet呢,这靠的是下图红框所圈出的这个方法。
看到这儿,大家是不是有种特别眼熟的感觉!对啊,这些在List中全见过,为什么在Workbook中也有,因为Workbook工作簿本身就是一个特殊的列表,列表的每一个元素是工作表,所以List的一些操作对于Workbook也适合。除了新建一个空的工作表,Python 3 还支持拷贝一个现有的工作表。
需要注意的是copy_worksheet不能在工作簿之间复制工作表。
知道了怎么创建一个工作簿,又学习了如何访问一个工作表,接下来当然就是对单元格进行操作了。在学之前,我们先想想,既然工作簿可以理解由工作表组成的列表,那么工作表是不是也可以认为是由单元格组成的列表呢?当然没问题,通过help语句看一下就知道了。
那么该如何访问具体的单元格呢,__getitem__方法写的估计大家也看不懂,不管它,我们先打开一个Excel文件实际操作一下。
如上图,大写的英文数字代表列,阿拉伯数字代表行,D3就表示第3行第4列的那个单元格,都说Python是最接近人类语言的编程语言,既然我们平时是这样使用Excel的,不要怀疑,在Python中这样用也可以。
打开文件,看看效果,是不是很不错啊。
上面的代码中还用到了一个cell方法,在此补充一下。
也可以使用iter_rows或iter_cols方法分别以行优先或列优先来迭代指定范围内的单元格。前面记得给出过一个例子,现在拿出来,大家再看一下。
当然你也可以批量赋值,这个使用for/in语句就可以实现了,在这里就先不讲了,就当是给小伙伴的家庭作业哈!Python 3还为我们提供了类型和格式推断的功能,什么意思呢,看一下官方文档给出的示例!
文件创建完毕后,大家要记得保存哈!openpyxl为我们提供了save方法(细心的小伙伴可以找找看,文章的前面部分已经用到了save方法),该方法怎么使用呢,看一下文档。
需要注意的是,通过load_workbook打开的Workbook是只读的。
还有两个我们平时操作Excel会用到的知识点,下面提一下。
Tips1:合并或取消合并单元格,用到了merge_cells和unmerge_cells两个方法,我们先看一下文档,再给出个小例子。
从上面文档中可以看出参数有两种写法,一种用到了range_string,一种是给start_row、end_column等赋值。
Tips2:将许多列折叠隐藏,这个功能也是很常用的,下面是openpyxl中给出的小例子。
其中用到了group方法,咱们还是要看一下文档。
好多朋友听了好久估计还不知道这个方法是干啥的,正所谓“百闻不如一见”,大家看看上述代码生成的group.xlsx文件就清楚了,如下图。
网友评论