QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5927|回复: 0
打印 上一主题 下一主题

如何用Python提高办公(Excel)效率?

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2020-5-30 14:47 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta

    7 k) I$ o* J! i1 p4 }; O$ T0 _2 P0 H如何用Python提高办公(Excel)效率?
    * u5 g7 l7 k1 t0 D! R这几天在家里利用网络视频教程学习了一下简单的Python爬虫,然后需要把爬取的数据保存到Excel表,就接触了一下 xlwt 这个Python库,不用不知道,一用吓一跳,当我写一个99乘法表,连带我导包只需要 7 行代码的时候,我才想起来,为啥那么多文员的招聘上写着 “会Python的优先” 了 ,想想语言里面的那些语法,再想想配合起来用,几万行数据也不过几行代码即可实现,那效率简直是快到令人难以呼吸啊!
    # _' ?; m6 h, U$ i0 H" ]. O( X文章目录
    + g! t/ A7 ]# Q) U7 a! d' R. c3 j7 I# j7 s
    准备xlwt库
    : i8 N1 W) |; }3 ^0 B4 Q安装xlwt包& D: T0 Y5 f* [5 M: [
    Python文件中导入包5 P. U0 _& }4 n/ `! d& v
    xlwt使用( k! d( q) ~/ E+ n
    创建WorkBook对象  k4 S) S* i6 c# i4 x& B/ ?
    创建Sheet; _; F( [$ B0 `) ~
    添加数据2 Z6 m" n  Q# A  s
    保存文件
    + M) {5 O' \9 w7 W拓展
    1 c3 H4 |& P) p批量插入5 d3 h# Q; V5 c
    报错注意$ e8 w. W1 Q- n6 {% G9 ]8 l
    准备xlwt库# W8 t* j! T" Q
    ' A/ u5 c; y0 |; t
    Python里面经过多年沉淀下来的库也是数不胜数,并且很多库的功能都非常强大,我都觉得以后哪怕是一个简单的文员都需要掌握Python了,虽然现在还不算是硬性要求,但是这种趋势已经在社会上形成了,毕竟互联网时代是个快节奏时代,能有高效率的办公谁还喜欢低效率呢?
    0 l- Y2 f) a9 d- }4 }- p4 x) H4 z: l! J4 T# [0 d* J9 a( V
    安装xlwt包. P2 ?. E9 I+ D0 A
    % w4 W  i+ G3 J* Q
    File ->> Setting ->> Project:Name ->> Project Interpreter ->> 右边 + 号 ->> 搜索xlwt ->> 选中xlwt ->> 左下角 Install Package ->> 等待安装完成: t8 m- @5 {2 k4 p. D

    3 r3 O* `5 ^# c5 Q( w0 N9 f, C 1.png
    / U2 q7 n" L7 j/ i5 _* m7 V 2.png
    4 A7 E4 m$ p+ Z' R, k2 q; ~% K& C# r
    Python文件中导入包
    5 \1 Y$ ]: r9 _; u7 }
    0 ~; n# k" Q( P/ N: S! I# m( @import xlwt # 导入 xlwt 包
    % h2 ~8 X* j" c) {6 m. @4 W1
    6 r; M( Q! t6 j$ h  ]" Sxlwt使用  r1 R0 t+ Y" j; @8 y

    8 j+ N7 ]9 i7 W* T# J  G! axlwt库的使用也非常简单,简单的写入数据可以按照如下四步(一步一行代码)走:
    8 Y: V5 {- M. _! }
    & G' k0 H, ]3 }- _创建WorkBook对象
    ( |1 N/ j9 T( n. \# c
    + z3 _8 ]8 ~, z+ Q, R创建WorkBook对象就约等于创建了一个Excel文件了,创建对象的时候只需要设置一下编码格式就行了,默认是ASCII,所以我们一般都需要设置一下 “UTF-8”8 T5 w3 c- H' }0 [: }. t% ]
    5 D! K4 Z( a- p# ~! e* \) w; X
    workBook = xlwt.Workbook(encoding="utf-8")  # 创建workBook对象
    1 t5 l& e3 T: C! p( L18 [% B1 J0 |# r" z+ _' }! H+ o8 H
    还有一个不常用的属性:压缩等级,直接不写就是默认 0
    * N2 n. D/ ^( \1 e* d  U
    9 v4 z: _6 p. R# style_compression 是表示设置压缩的等级4 Z5 R' ?+ m7 c! R3 {& y, P; h
    workBook = xlwt.Workbook(encoding="utf-8",style_compression=0)7 X/ H0 l. E5 }1 X1 X5 k0 v& |4 O
    12 f" ?& y7 z; w; d1 {0 |
    2
    % p. n( _% w" |6 a2 _/ B创建Sheet
    ( `* u1 a$ ]4 D. X3 ~8 o
    4 N% l( Z9 F& I* {用过Excel的人应该都知道,一个xls(或xlsx)文件是可以有多个表的,当然可能我们很多时候习惯每个文件只有一个表有数据。这里只需调用WorkBook的 .add_sheet() 方法,设置一下表名,即可创建一个表,当然我们默认是设置一下覆盖属性:cell_overwrite_ok=True 表示可以覆盖原有数据进行写入操作' ^( z0 N& c5 }" @  B8 t& X5 p* B

    & c5 M/ x, w0 qworkSheet = workBook.add_sheet("sheet1",cell_overwrite_ok=True): H% j2 E; }; v- n- L- X
    11 C: k) {7 I; x6 |( H+ H& H2 x! f
    添加数据% Q. q6 H: n7 }! V: M$ p) J0 e
    $ j) ?( K2 o, p/ b3 d
    文件有了,表有了,自然就剩下添加数据了,不然咱建个空文件、空表干啥呢?右键新建它不香嘛?写入数据的操作也是简单至极,调用workSheet的 .write() 方法,填入 行、列、数据 三个参数即可插入数据(作为一个程序猿,第一个数据当然要是神圣的:Hello World !). v2 P  W4 }7 l% U! Z5 M# J

    ) W' c5 |. X% t* h) P% hworkSheet.write( 0, 0,"Hello Wolrd !")$ q" A; i  y" W+ y. I/ n. ^- ?
    1+ C. T0 T) Q4 m
    保存文件
    - k% m; ^. @' O$ t) N% @8 g' z9 |4 U* v/ j, ?) `$ `% N
    文件创建了,并不代表保存了,所以在写入完数据以后需要进行文件的保存(这里是保存在当前Python文件的同一个文件夹下)
    1 S; X5 B" B; B+ l4 v9 e' Y
    / J4 v6 A* k. F4 O+ W8 n" C! KworkBook.save("Hello World.xls"); K5 T3 ~" L3 ~8 H
    1
    - K- [. z  T9 t+ X+ o7 w' V拓展
    9 X" U' n8 M7 K" C8 @- p6 y
    $ O9 N" c& {7 n. r5 Q批量插入
    # c2 O' `7 D; R, v9 `  L5 T1 M  r' N3 o, N) B' V9 {
    利用语法批量插入数据,可能很多小伙伴都会了,但是我还是死皮赖脸说一说吧!
    ' {/ f) i; r% t! X1 B$ A
    8 y/ W6 r0 x$ b  ~- ^3 e( P) H( R比如这样,就是一个99乘法表的数据,逻辑是和学语言的时候打印99乘法表一样的,只不过这里把打印变成了写入Excel
    - k3 a0 e9 w7 h; @* V$ h9 q5 a6 |. j, T0 {7 d
    for i in range(0, 9):- M" o3 L! E. M, G! l) V3 d7 W: Q& M/ f
        for j in range(0, i+1):$ e2 y  R: A7 h/ n4 d+ j
            workSheet99.write(i, j, "%d * %d = %d" % (i+1, j+1, ((i+1) * (j+1))))9 l7 r+ L. b! x: v2 G
    1
    4 \3 Y/ ?! x; z7 U2
    $ x3 L! h3 X: z/ }1 F4 V1 M3: f! t. ?2 U& S8 I0 a/ m8 O/ x9 w
    当然,还有很多很多操作,利用语法去实现,你会发现批量插入Excel数据如此简单,对于很多经常使用Excel批量插入或者处理数据人,感觉世界都轻松了起来!或许这就是程序改变世界吧!也验证了那句:人生苦短,我用Python!; A) ?: F. A& V& ]  j* ?. ^0 X
    * B; r. j/ ]3 Q: @
    报错注意; _/ d* i% V: _, r) `! Q

    2 |9 B5 l2 _  ]3 D如果你在进行这一系列操作的时候,报错了,点击错误链接跳转的是保存文件那一行,并且是这样的错误,那么恭喜你,没关Excel(我经常这样),因为你打开了这个数据表,他就被WPS之类的软件占用了,程序就没法对其进行读写操作了,所以这点是需要注意的!9 d+ c7 A! \" ~& c4 |
    ) \: X5 Q! w# P+ _. T# h" ?
    PermissionError: [Errno 13] Permission denied: 'xxxxx.xls'6 `1 o; q/ t- G8 Z0 n3 {
    " Y0 W1 r7 V" k2 t

    : o9 T- d' I5 W% r————————————————: _* d" A6 Q! X: S
    版权声明:本文为CSDN博主「Android_YU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    $ ]# p5 C8 Z* ~/ m: w6 G原文链接:https://blog.csdn.net/qq_44720366/article/details/106152028
    1 s# m( ]+ I; s' f1 Z/ F3 S: _7 S' Z/ f' k0 S/ r# x( v. C

    5 _" a4 _6 ]* e' h
    . q. B( _$ ?4 R2 b4 o+ l
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-17 23:00 , Processed in 1.617373 second(s), 53 queries .

    回顶部