QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 6045|回复: 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
    8 N  x7 J. Q9 s/ Q4 F# [- |9 q; c0 @
    如何用Python提高办公(Excel)效率?- _3 N4 _5 |* E
    这几天在家里利用网络视频教程学习了一下简单的Python爬虫,然后需要把爬取的数据保存到Excel表,就接触了一下 xlwt 这个Python库,不用不知道,一用吓一跳,当我写一个99乘法表,连带我导包只需要 7 行代码的时候,我才想起来,为啥那么多文员的招聘上写着 “会Python的优先” 了 ,想想语言里面的那些语法,再想想配合起来用,几万行数据也不过几行代码即可实现,那效率简直是快到令人难以呼吸啊!
      B& M7 H( z) I& Y+ B. K, i. K文章目录
    % y" Y5 l# s: W2 ]* m: X0 k3 [5 W
    7 F3 Y% ?, e! t准备xlwt库
    / v/ S. |# F4 f- M2 a/ H5 p安装xlwt包' d' J$ D, M. c' d. f6 u
    Python文件中导入包! C9 d' Z2 D4 M, T
    xlwt使用
    4 v: {2 U1 E$ \创建WorkBook对象
    7 C* X# N/ ?) v% ]& S& n创建Sheet
    * s5 e  i7 o( Z添加数据3 w- j% N- m5 B3 d
    保存文件  x- W3 @* ]8 B* l
    拓展; |  K! g, a: B6 ~, C
    批量插入
    4 v3 \6 r8 S  w5 S报错注意
    ! h" _8 H/ C/ a- a) }% L8 y' l准备xlwt库
    ; m% i- s, w( X6 j! ^; ]6 p
    " |: @, ?/ h9 APython里面经过多年沉淀下来的库也是数不胜数,并且很多库的功能都非常强大,我都觉得以后哪怕是一个简单的文员都需要掌握Python了,虽然现在还不算是硬性要求,但是这种趋势已经在社会上形成了,毕竟互联网时代是个快节奏时代,能有高效率的办公谁还喜欢低效率呢?$ @8 L$ L% ~+ i2 N5 {# P$ @
    & M* V$ w! w0 i: p- v
    安装xlwt包
    ) X- J: {5 |6 h4 J2 v' v+ m' ^# Q( S# P1 d! P0 [- T5 L! H4 Q2 F4 W
    File ->> Setting ->> Project:Name ->> Project Interpreter ->> 右边 + 号 ->> 搜索xlwt ->> 选中xlwt ->> 左下角 Install Package ->> 等待安装完成
    3 k7 ]! L8 f: L( j) }1 E
    - T# u  s3 E, q: s  ^' W' C; m 1.png
    5 b  _" P' v# x1 N+ T0 C 2.png / O1 [/ u& _1 j# M' _. m( B* g
    ! _% y# x% j  f$ D/ t5 Z$ X5 Z+ i1 m
    Python文件中导入包0 x& c( H6 u7 e' ?
    $ ^' F% K- l( d' Y" h( [
    import xlwt # 导入 xlwt 包
    ( I# r( T* X: @& t5 D) C11 n8 j1 s+ ]( t- f* R8 h( `3 p& s
    xlwt使用/ Q  t& _3 ~, b) i4 w

    3 r3 G. }* l4 m( U& S* b0 vxlwt库的使用也非常简单,简单的写入数据可以按照如下四步(一步一行代码)走:0 ]# ?0 x; n7 A  w; \8 j" Z# l: H

    0 S/ G* E, g9 L# x创建WorkBook对象
    + F, i. P4 `' g8 D( l' `8 q, H6 K+ C. A+ P
    创建WorkBook对象就约等于创建了一个Excel文件了,创建对象的时候只需要设置一下编码格式就行了,默认是ASCII,所以我们一般都需要设置一下 “UTF-8”
    ( C" i( E- u1 z  p+ t6 ^6 V3 t3 s& `/ t7 Z
    workBook = xlwt.Workbook(encoding="utf-8")  # 创建workBook对象
    0 j7 ]( S! i" j" ~2 v. q8 R. H$ ^# I16 \$ ]2 I' p) N" z
    还有一个不常用的属性:压缩等级,直接不写就是默认 0+ G& q* U" [% g5 R
    ( j2 U/ }: v) b; }6 i  w
    # style_compression 是表示设置压缩的等级1 P( F& F3 W9 G5 O
    workBook = xlwt.Workbook(encoding="utf-8",style_compression=0)- n4 f! t- }3 P
    1
    7 \* Y0 t! \& c2 J9 ?! d3 c26 ^' y. @& U5 a/ S, T% g
    创建Sheet. t. |  t- C5 S2 l+ f
    ) e9 N7 T( N4 L" h, k6 ~5 q
    用过Excel的人应该都知道,一个xls(或xlsx)文件是可以有多个表的,当然可能我们很多时候习惯每个文件只有一个表有数据。这里只需调用WorkBook的 .add_sheet() 方法,设置一下表名,即可创建一个表,当然我们默认是设置一下覆盖属性:cell_overwrite_ok=True 表示可以覆盖原有数据进行写入操作" z3 Q% X, ~& N

    1 Z" i" Z( o4 t2 r) KworkSheet = workBook.add_sheet("sheet1",cell_overwrite_ok=True)
    - C/ v. M/ j' Q% y4 m& u8 R1- p, b, h2 C4 Z/ W
    添加数据
    ' F6 S: O6 L" u
    9 i5 W2 u9 N7 q. G0 m4 Q文件有了,表有了,自然就剩下添加数据了,不然咱建个空文件、空表干啥呢?右键新建它不香嘛?写入数据的操作也是简单至极,调用workSheet的 .write() 方法,填入 行、列、数据 三个参数即可插入数据(作为一个程序猿,第一个数据当然要是神圣的:Hello World !)
    & k! f1 q, C( n) C9 N+ _" D' ^) V) |; u  y: k, q3 l: K
    workSheet.write( 0, 0,"Hello Wolrd !")+ v+ M+ ]4 B7 q- u5 B
    1, Q/ y+ k& @: d* D. W
    保存文件/ Z. X$ T' R6 o: N  d+ g

    5 T9 @. L% l0 K' \8 N1 D1 D文件创建了,并不代表保存了,所以在写入完数据以后需要进行文件的保存(这里是保存在当前Python文件的同一个文件夹下)4 D, L$ x: v7 r7 w! J) o1 }

    : @- l- R8 u  b8 |- y" ~workBook.save("Hello World.xls")( x) G8 Z  x  k. q' a( r
    10 \4 x! S$ Y. C4 Z; q8 R
    拓展; _+ R4 Q) E( U9 N$ N  J: r" |

    $ g) `7 d4 ]& b批量插入
    0 K# M. a  C- A' ^9 a5 Z$ U9 |. d, W. k8 l6 o( Z. z+ Q
    利用语法批量插入数据,可能很多小伙伴都会了,但是我还是死皮赖脸说一说吧!2 L4 O, s0 A5 s& H  S# ~
    1 Q0 S  c1 D1 N+ B  ?  x
    比如这样,就是一个99乘法表的数据,逻辑是和学语言的时候打印99乘法表一样的,只不过这里把打印变成了写入Excel
    " c, @2 b2 i" R6 L; Q
    7 l# b) |. Z! o( [for i in range(0, 9):% e& N2 s/ Y, Y# f* X% [3 ~' P
        for j in range(0, i+1):
    9 a" ~, Q0 S# s; Y" v$ y6 U        workSheet99.write(i, j, "%d * %d = %d" % (i+1, j+1, ((i+1) * (j+1))))
    ( l8 g" ?2 }5 g& ^+ ~3 q) [) }1; P; B$ S$ d+ s' _5 a
    2
    + b' f6 K2 ?, L4 {% z& {3
    - C; s* m- l6 r0 D. n当然,还有很多很多操作,利用语法去实现,你会发现批量插入Excel数据如此简单,对于很多经常使用Excel批量插入或者处理数据人,感觉世界都轻松了起来!或许这就是程序改变世界吧!也验证了那句:人生苦短,我用Python!& U5 {. S( K+ q
    4 T3 t  n) m2 n4 t4 C0 S; Z
    报错注意
    ; G" D( d7 u+ J' Y& _- a+ Y9 Z
    / r+ z/ ?) t, B4 j如果你在进行这一系列操作的时候,报错了,点击错误链接跳转的是保存文件那一行,并且是这样的错误,那么恭喜你,没关Excel(我经常这样),因为你打开了这个数据表,他就被WPS之类的软件占用了,程序就没法对其进行读写操作了,所以这点是需要注意的!
    " j$ a" x5 r1 I1 P1 Y* U9 @8 |4 N8 G5 r, a& n6 w! U
    PermissionError: [Errno 13] Permission denied: 'xxxxx.xls'
    " {: S6 V, v# ?
    % d5 m7 t* `5 k: t0 N7 P8 O+ o- Y# z7 V
    ————————————————4 P4 T. n7 R: c6 a) g6 [
    版权声明:本文为CSDN博主「Android_YU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    0 Z( f. A- A% A4 B% U* e6 E原文链接:https://blog.csdn.net/qq_44720366/article/details/106152028
    ( K) s& O; S- K: r/ I0 s8 A
    ' o$ b/ B  x/ f2 Z/ Y' A  K* }. }6 i' ]3 e2 h$ ]7 t4 ]7 S# H2 f; Q

    ' {$ f/ Q  W* G2 i
    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-7-27 06:02 , Processed in 0.734410 second(s), 54 queries .

    回顶部