php导出五百万条数据到excel,经理要我把五百万条数据全部导入Excel!还好有Python!不然等死-站长资讯中心...

c4468b3f4df77e96b0a416fa2a870fba.png

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

kv5fjrink5a.jpg

fzkrl5vsp05.jpg

u4gixgr1gr1.jpg

3zud5xfvahn.jpg

安装好openpyxl后,通过import语句导入,再通过执行help方法,看看openpyxl库中包含哪些东西,不需要认识,有个印象就行。

tka3op4prb0.jpg

xjdqsvdn11v.jpg

里面有一些单词还是很熟悉的吧,比如cell单元格、chart图表、styles样式、workbook工作簿、worksheet工作表,除了用help方法,还可以使用dir方法来查看一个库的所有成员,我把我们一会儿可能会用到的一些已经标红了,大家在学习的过程中可以重点关注下。

wanaiey5zj3.jpg

zg5uszilnef.jpg

ps5ich5kpl5.jpg

下面给出一些基本操作示例,大家可照着写一下。

q3z1ngcwgwe.jpg

再秀一下操作,一下子读取指定行列的单元格,用到了iter_rows方法,表示在参数指定范围内按行迭代,如果想要按列迭代的话可以使用iter_cols方法。

rkc4z4sn4fb.jpg

上面的代码展示了如何操作一个已有的Excel文件,下面再看一下新建一个Excel的例子。

2sac0a3tcfy.jpg

生成的Excel文件如下图所示:

zvqar2uruo0.jpg

OK,是不是感觉操作Excel很简单啊,那是因为你在这一段时间的Python学习中进步了,给自己一个赞!openpyxl官方文档的地址是:http://openpyxl.readthedocs.io/en/stable/,打开主页后,让我们先膜拜一下Eric Gazoni和Charlie Clark大神,没有你们俩,估计我还在一个字一个字的改Excel呢!

1o5uaynhtfz.jpg

idrn35q5zrs.jpg

r2cwkpt1t02.jpg

上面的知识点还是不少的,比如最后一句,Workbook是一个文档所有其余部分的容器。怪不得,一开始就要把Workbook创建好。Workbook被创建的时候至少包含一个worksheet,即工作表,可以通过Workbook.active()方法来定位到该工作表。acitve方法使用了 the _active_sheet_index属性,该属性值默认为0,当然你也可以设置为其他值。

1kntl5noatw.jpg

oi1lem1os20.jpg

除了在创建工作表的时候设置名字,Python 3也支持任意时候通过修改属性title来更改工作表的名字,我们先给个代码,再作解释。

kc311sugjtj.jpg

为什么wb['Sheet']就能定位到工作表Sheet呢,这靠的是下图红框所圈出的这个方法。

idwpfzpws4s.jpg

看到这儿,大家是不是有种特别眼熟的感觉!对啊,这些在List中全见过,为什么在Workbook中也有,因为Workbook工作簿本身就是一个特殊的列表,列表的每一个元素是工作表,所以List的一些操作对于Workbook也适合。除了新建一个空的工作表,Python 3 还支持拷贝一个现有的工作表。

vhts3cn3v0m.jpg

wxr1dgvv5et.jpg

需要注意的是copy_worksheet不能在工作簿之间复制工作表。

知道了怎么创建一个工作簿,又学习了如何访问一个工作表,接下来当然就是对单元格进行操作了。在学之前,我们先想想,既然工作簿可以理解由工作表组成的列表,那么工作表是不是也可以认为是由单元格组成的列表呢?当然没问题,通过help语句看一下就知道了。

buykbalr1ok.jpg

那么该如何访问具体的单元格呢,__getitem__方法写的估计大家也看不懂,不管它,我们先打开一个Excel文件实际操作一下。

e4u1sc3lhr1.jpg

如上图,大写的英文数字代表列,阿拉伯数字代表行,D3就表示第3行第4列的那个单元格,都说Python是最接近人类语言的编程语言,既然我们平时是这样使用Excel的,不要怀疑,在Python中这样用也可以。

nouc0p1ocz5.jpg

打开文件,看看效果,是不是很不错啊。

sxbxpugclea.jpg

上面的代码中还用到了一个cell方法,在此补充一下。

vahkat1ih0z.jpg

tecgmlosei5.jpg

syl1vr4kiqk.jpg

也可以使用iter_rows或iter_cols方法分别以行优先或列优先来迭代指定范围内的单元格。前面记得给出过一个例子,现在拿出来,大家再看一下。

crssv2drwve.jpg

vhjrqir0t1p.jpg

or32bngoeq1.jpg

sb1ojwygine.jpg

当然你也可以批量赋值,这个使用for/in语句就可以实现了,在这里就先不讲了,就当是给小伙伴的家庭作业哈!Python 3还为我们提供了类型和格式推断的功能,什么意思呢,看一下官方文档给出的示例!

nh2354iqobl.jpg

文件创建完毕后,大家要记得保存哈!openpyxl为我们提供了save方法(细心的小伙伴可以找找看,文章的前面部分已经用到了save方法),该方法怎么使用呢,看一下文档。

3vgbkdp04fw.jpg

zmgabu1khai.jpg

1hb1phwjsjz.jpg

需要注意的是,通过load_workbook打开的Workbook是只读的。

还有两个我们平时操作Excel会用到的知识点,下面提一下。

Tips1:合并或取消合并单元格,用到了merge_cells和unmerge_cells两个方法,我们先看一下文档,再给出个小例子。

214nr4gdz0h.jpg

从上面文档中可以看出参数有两种写法,一种用到了range_string,一种是给start_row、end_column等赋值。

xb2pzizju5q.jpg

Tips2:将许多列折叠隐藏,这个功能也是很常用的,下面是openpyxl中给出的小例子。

dtaqy4jeqpc.jpg

其中用到了group方法,咱们还是要看一下文档。

y2ziuhg2xkw.jpg

好多朋友听了好久估计还不知道这个方法是干啥的,正所谓“百闻不如一见”,大家看看上述代码生成的group.xlsx文件就清楚了,如下图。

ykwpb51lf03.jpg

ujtbnsrbkg1.jpg

bwos1ffmdh5.jpg

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值