QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5933|回复: 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 y! N1 S8 W. u! v4 P7 `如何用Python提高办公(Excel)效率?# e. k/ J1 M; x6 {) X* C
    这几天在家里利用网络视频教程学习了一下简单的Python爬虫,然后需要把爬取的数据保存到Excel表,就接触了一下 xlwt 这个Python库,不用不知道,一用吓一跳,当我写一个99乘法表,连带我导包只需要 7 行代码的时候,我才想起来,为啥那么多文员的招聘上写着 “会Python的优先” 了 ,想想语言里面的那些语法,再想想配合起来用,几万行数据也不过几行代码即可实现,那效率简直是快到令人难以呼吸啊!
    ' b! o" F7 T  p- u, T+ N文章目录
    7 W  O! O& ], D$ W! @4 M( x! j/ x; r9 M2 e$ x; N) C
    准备xlwt库: E( u6 U: Q1 d
    安装xlwt包- X, e  h  Z2 r5 h. o' {# O* Q  J
    Python文件中导入包
    & p  `& ]& J+ ]- e6 Uxlwt使用
    2 A/ C6 v' }$ h) s, I  [创建WorkBook对象6 G) c+ k5 Q' ]! @
    创建Sheet
    " x5 i+ `2 I9 R0 e. n( r. S添加数据
    5 J6 o4 I; D/ H保存文件
    9 L, `- \  q1 G3 H9 v( a" [拓展% F# v3 T5 Y# s* E" }; R: o$ d0 h
    批量插入; @5 Y, w% B5 d3 _  J& ^
    报错注意
    . o9 U  g7 \2 M: O. g* D" k准备xlwt库  f5 i# R% ?  {! o& G: V

    5 `* @; F9 o' _Python里面经过多年沉淀下来的库也是数不胜数,并且很多库的功能都非常强大,我都觉得以后哪怕是一个简单的文员都需要掌握Python了,虽然现在还不算是硬性要求,但是这种趋势已经在社会上形成了,毕竟互联网时代是个快节奏时代,能有高效率的办公谁还喜欢低效率呢?/ t) M( L  R/ v7 X  W

    3 z) N2 i5 ~: c' a$ K8 L* D+ f安装xlwt包
    ( B* d; R7 r- w& D
    4 ~  B4 _5 H: [# m; D( NFile ->> Setting ->> Project:Name ->> Project Interpreter ->> 右边 + 号 ->> 搜索xlwt ->> 选中xlwt ->> 左下角 Install Package ->> 等待安装完成/ X5 ]2 V. \: A. Y) ~
    5 ?6 H5 p7 I; \1 L5 Y* ?6 |) @5 q
    1.png
    / \/ ]' }. X( v6 O2 _ 2.png
    7 D' g, J0 a! P7 E7 z+ z! A* E' \2 D& Y8 T: C
    Python文件中导入包
    & B( F6 c  ], w+ w+ ~* `9 G' c: W# \/ E; o' D# t3 N- ~* d6 N0 ?5 M! ^' n% j
    import xlwt # 导入 xlwt 包" l% O, |5 x/ q% l) M7 P
    1
    . a% `/ A4 Q6 S4 T3 z. Q& Mxlwt使用
    ! |% g" ^6 ~- [# E7 W
    . z/ S$ B; J) a( N2 G7 O, Dxlwt库的使用也非常简单,简单的写入数据可以按照如下四步(一步一行代码)走:0 m0 o! D2 e& y
    " G7 \0 q+ U: P5 F
    创建WorkBook对象
      m: Z  h9 V9 K8 J" d/ N
    & Q! h. a( y2 |& y! ~8 _创建WorkBook对象就约等于创建了一个Excel文件了,创建对象的时候只需要设置一下编码格式就行了,默认是ASCII,所以我们一般都需要设置一下 “UTF-8”7 Q5 g7 q3 J$ p0 P6 H& s0 q0 w

    & x5 y: j. k5 s4 D8 i4 O0 xworkBook = xlwt.Workbook(encoding="utf-8")  # 创建workBook对象/ K5 i( c: o3 l2 G9 p7 H' t" i
    17 W  d3 e$ Q% l( V* o
    还有一个不常用的属性:压缩等级,直接不写就是默认 02 H+ o( x; o( x# w1 ]! M

    / o% M/ u. |; P: y# style_compression 是表示设置压缩的等级2 e$ n- G/ `! d: m, B
    workBook = xlwt.Workbook(encoding="utf-8",style_compression=0)
    . L( i0 S, w9 m3 i; V) C' s/ [1
    9 u- P4 L. d" r# w: h20 p1 A3 D7 M3 T
    创建Sheet* T9 ?4 v/ i1 P8 B- m
    . e/ b. m) @( F' r+ r' C$ O7 B
    用过Excel的人应该都知道,一个xls(或xlsx)文件是可以有多个表的,当然可能我们很多时候习惯每个文件只有一个表有数据。这里只需调用WorkBook的 .add_sheet() 方法,设置一下表名,即可创建一个表,当然我们默认是设置一下覆盖属性:cell_overwrite_ok=True 表示可以覆盖原有数据进行写入操作
    : D8 c- I) K1 E* {3 }! j
    9 t9 g6 W1 N, c! RworkSheet = workBook.add_sheet("sheet1",cell_overwrite_ok=True)) v* R( W3 _+ w; x% u: P/ i
    1
    ! _% ?  a3 s  }1 C, w3 n0 Z添加数据: \( y* R, w5 n
    ' L; G, p9 ?5 h' N% _: ]
    文件有了,表有了,自然就剩下添加数据了,不然咱建个空文件、空表干啥呢?右键新建它不香嘛?写入数据的操作也是简单至极,调用workSheet的 .write() 方法,填入 行、列、数据 三个参数即可插入数据(作为一个程序猿,第一个数据当然要是神圣的:Hello World !)
    3 @8 t; z9 u) Q" p) Z. e1 ?5 p" f. e/ R! U* R7 Q% I  t
    workSheet.write( 0, 0,"Hello Wolrd !")
    3 t# G7 g* _- t1% c* f, w+ g, K5 S$ I
    保存文件/ F5 q- ^0 p: P+ |! O/ W- K
    7 ^' V% e" F$ ?+ Y/ c% ~( I1 N
    文件创建了,并不代表保存了,所以在写入完数据以后需要进行文件的保存(这里是保存在当前Python文件的同一个文件夹下)8 @" B3 [4 d" L9 ?

    ) w" ]& X8 |% ^, l7 iworkBook.save("Hello World.xls")
    2 x' x6 L7 V& j1 p: }# V, a1+ ~: V) ^& b2 i! m3 p. m# {
    拓展9 R* H" o$ [- R" d/ s% P

    . F" ?9 m( s% D* P& b1 k批量插入
    . s$ M4 W  H2 J6 E/ w( H4 `. \; v+ C% Q; F6 D9 G) K4 H
    利用语法批量插入数据,可能很多小伙伴都会了,但是我还是死皮赖脸说一说吧!, \) o* p) T1 A

    & D2 x- F6 q$ p比如这样,就是一个99乘法表的数据,逻辑是和学语言的时候打印99乘法表一样的,只不过这里把打印变成了写入Excel
    / U* I( v0 j& J5 b! i3 O5 z4 X2 D/ \% w, P7 t" G+ i8 F
    for i in range(0, 9):
    ! E0 u7 l" J* {1 b8 p; b& s0 d    for j in range(0, i+1):* x, u1 E8 i; O5 Y  p2 }
            workSheet99.write(i, j, "%d * %d = %d" % (i+1, j+1, ((i+1) * (j+1))))
    , k0 w- J' q# E- s: O0 I1
    , M! W) y* ^# Q8 ^- m2
    ; ^4 B' Z4 @" s  w7 j' f% A3; u7 O# S7 x* B; ^
    当然,还有很多很多操作,利用语法去实现,你会发现批量插入Excel数据如此简单,对于很多经常使用Excel批量插入或者处理数据人,感觉世界都轻松了起来!或许这就是程序改变世界吧!也验证了那句:人生苦短,我用Python!8 S, C/ e( F- v" R  G# P5 z
    2 I% ~6 |+ Q& B9 a
    报错注意4 q8 v' Y2 s* q' x

    ( e) A# r, i1 d) Q% f( V- @如果你在进行这一系列操作的时候,报错了,点击错误链接跳转的是保存文件那一行,并且是这样的错误,那么恭喜你,没关Excel(我经常这样),因为你打开了这个数据表,他就被WPS之类的软件占用了,程序就没法对其进行读写操作了,所以这点是需要注意的!5 m! y: v  [! d; D5 E  f, s5 P8 V
    5 @) ^0 Q* L4 X, m! a
    PermissionError: [Errno 13] Permission denied: 'xxxxx.xls'
    9 v. A' Y) r9 z
    . d1 K1 K: Y4 P  G5 c" i6 l+ D- O3 O0 d3 {
    ————————————————9 k: N( Z/ S# T( n7 R" X
    版权声明:本文为CSDN博主「Android_YU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。4 S$ c4 A2 g3 @6 G" G$ r  |
    原文链接:https://blog.csdn.net/qq_44720366/article/details/106152028$ M% j5 }& b6 W' A9 L" G& Q2 F% z

    $ E5 N6 ~: p% S7 Y$ Y/ z
    ; b! s0 {; v0 S3 p: p+ g0 L  T8 A  a2 l  i# ^/ y4 S: F
    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-18 20:52 , Processed in 0.422898 second(s), 54 queries .

    回顶部