美文网首页Python新世界Python学习
经理要我把五百万条数据全部导入Excel!还好有Python!不

经理要我把五百万条数据全部导入Excel!还好有Python!不

作者: 919b0c54458f | 来源:发表于2018-08-02 15:50 被阅读8次

    xcel是坐着电脑前百分之九十九的人都会不用的办公软件,东西少还好说,那样存入表格也简单,但是当你的数据达到几万几十万,几百万那就恐怖了,如果全靠手动,那么你至少要连上一个月的班了,不能停息的那种!可见这时候就考虑到技术方面的能力了,很多东西都可以自动实现,如果手动的话,真不知道搞到何年何月了,耗时不说,关键没有什么意义!好了回归正题,手把手教你如何利用Python来操作Excel!进群:125240963   即可获取数十套PDF哦!

    安装好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文件就清楚了,如下图。

    相关文章

      网友评论

      • Anan_5e97:excel最大一个表只能一百多万行,csv例外
      • i_huihui:pandas不是更方便吗
      • b9a9a005e7fd:这个没有意义,还不如用access
      • 天问604:导进去以后,怎么用,打得开吗?五百多万!:cold_sweat:
      • 16926b49840e:为什么不用pandas
      • 2bd446e6f149:excel承载的数据量大了容易死。。。
      • 蒋兴邦:导入后还能打的开么?几百万?

        十万左右就得加载很久!

      本文标题:经理要我把五百万条数据全部导入Excel!还好有Python!不

      本文链接:https://www.haomeiwen.com/subject/wicsvftx.html