QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5975|回复: 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

    9 H! z3 C) z5 a: G) O9 b如何用Python提高办公(Excel)效率?
    8 J) ^/ o$ v1 r9 t! D这几天在家里利用网络视频教程学习了一下简单的Python爬虫,然后需要把爬取的数据保存到Excel表,就接触了一下 xlwt 这个Python库,不用不知道,一用吓一跳,当我写一个99乘法表,连带我导包只需要 7 行代码的时候,我才想起来,为啥那么多文员的招聘上写着 “会Python的优先” 了 ,想想语言里面的那些语法,再想想配合起来用,几万行数据也不过几行代码即可实现,那效率简直是快到令人难以呼吸啊!
    3 T2 D) [# i$ F+ E9 j# _文章目录
    - W; i. V3 ~& j  E8 R2 D, V/ Q9 p9 V2 ~2 d4 R% C
    准备xlwt库
    ! F8 S! ]4 F9 H/ X% `3 t2 F0 o安装xlwt包, n- Q* E8 ^! x% @# h8 B
    Python文件中导入包
    , d4 g1 y6 ^) o; t2 _xlwt使用
    . M! e4 [5 j  J9 i+ g创建WorkBook对象
    1 ^: S, W5 }  _$ b8 m创建Sheet% d: e: |- Q( E2 S3 X3 e
    添加数据; t9 v- F" h9 g: Y! H
    保存文件
    2 J3 a' m0 T. n. @$ i- Y/ b3 |) I拓展
    ( d! T0 k4 _6 m# \$ n* {, ?批量插入! n* X8 e8 _/ f
    报错注意) R( K. M7 h1 P8 O. E! @% G
    准备xlwt库! X5 J6 S6 j7 d2 D) B! `2 ]/ J
    7 j/ B2 f$ H3 z% L& N% G' N
    Python里面经过多年沉淀下来的库也是数不胜数,并且很多库的功能都非常强大,我都觉得以后哪怕是一个简单的文员都需要掌握Python了,虽然现在还不算是硬性要求,但是这种趋势已经在社会上形成了,毕竟互联网时代是个快节奏时代,能有高效率的办公谁还喜欢低效率呢?
    % L. m$ R' `; B6 N9 c" X; d
    : s: \5 i# f8 @; i0 \5 ]安装xlwt包
    " x- H2 [6 C& u6 Z* N6 k5 I+ x0 ]9 @' n
    File ->> Setting ->> Project:Name ->> Project Interpreter ->> 右边 + 号 ->> 搜索xlwt ->> 选中xlwt ->> 左下角 Install Package ->> 等待安装完成
    , b% U) G9 E  E+ ?% q$ T/ q# G+ V% ?0 b) p2 C
    1.png
    % N- w) x8 a7 O 2.png 2 [+ Y0 G1 M+ g
    $ T" U3 z* S8 \& N
    Python文件中导入包& o5 }$ J6 Q" V* G7 Y1 S' {: a+ C, Q6 t( S
    6 H2 j6 s% q% ~5 o
    import xlwt # 导入 xlwt 包; x% g9 ^( L; R( J2 l: H9 c- U
    18 _) l) g" D/ v. e$ n6 d( |
    xlwt使用3 _' Z* |: f0 T( ~0 m8 Z
    5 y; {' ^# Y1 |
    xlwt库的使用也非常简单,简单的写入数据可以按照如下四步(一步一行代码)走:( {% ^6 x, c; m8 T. |

    " F. b3 l; u( K创建WorkBook对象
    # o6 e1 j! @( C/ ?9 e. @4 n/ D- R8 m' d
    " \6 D7 y7 A( E3 K. a6 C, p- q' F7 f创建WorkBook对象就约等于创建了一个Excel文件了,创建对象的时候只需要设置一下编码格式就行了,默认是ASCII,所以我们一般都需要设置一下 “UTF-8”
    ! `$ V( H, P0 E1 y8 `- j$ e) `" u( G6 M( `7 }" N8 [+ [# U: [
    workBook = xlwt.Workbook(encoding="utf-8")  # 创建workBook对象
    $ j% c. i4 x# R! u" U1$ L+ ^: ?" I6 x# u: V3 I: X' m* k
    还有一个不常用的属性:压缩等级,直接不写就是默认 0
    ( @7 B! M0 N# p
    8 G: O) A* D) o4 P: |! X5 k# style_compression 是表示设置压缩的等级+ \9 N2 Z4 M+ e# p6 I5 r
    workBook = xlwt.Workbook(encoding="utf-8",style_compression=0)
    " |* F2 }! q' c: ?1
    9 G" B* [, X& U( Q, m2" q# a# k' r) b% N; L4 k% O# I4 }
    创建Sheet
    8 \$ ]1 U+ g! ]7 y2 U9 ~8 j! _! [' |
    用过Excel的人应该都知道,一个xls(或xlsx)文件是可以有多个表的,当然可能我们很多时候习惯每个文件只有一个表有数据。这里只需调用WorkBook的 .add_sheet() 方法,设置一下表名,即可创建一个表,当然我们默认是设置一下覆盖属性:cell_overwrite_ok=True 表示可以覆盖原有数据进行写入操作
    * V; Z2 @* q- U# p5 ?( q8 Q) T5 W, S( \6 T& r& E& X) Y
    workSheet = workBook.add_sheet("sheet1",cell_overwrite_ok=True)
    / T- W* L3 {5 }# s: \1 Q4 Z1
    ' N" l3 X: R: ?3 V添加数据
    - ]3 r' l6 |4 \) Y) O& n- s2 }# p# O3 |
    文件有了,表有了,自然就剩下添加数据了,不然咱建个空文件、空表干啥呢?右键新建它不香嘛?写入数据的操作也是简单至极,调用workSheet的 .write() 方法,填入 行、列、数据 三个参数即可插入数据(作为一个程序猿,第一个数据当然要是神圣的:Hello World !)
    ' ~, X0 e3 V" c+ c$ F
    " S% B0 T/ j& P; b& W! y& Z! TworkSheet.write( 0, 0,"Hello Wolrd !")" Z' y7 O+ z" Q+ z! b4 o9 Y
    18 t5 j- Z; M" C8 J
    保存文件6 n0 w7 T1 ]0 r- J+ X

    ) M. u" F- i  \* v) k+ z8 q文件创建了,并不代表保存了,所以在写入完数据以后需要进行文件的保存(这里是保存在当前Python文件的同一个文件夹下)3 }0 ~. \. i" M2 ~4 y

    ; o7 \" J8 S2 q! ^' [4 N7 UworkBook.save("Hello World.xls")
    % f& @8 X( b. a1
    9 E- H( T/ n  ^! I/ f2 J# T拓展
      D% j% W9 l9 L# Z# u# ?
    ) w8 f" D% d5 @- y& }批量插入) Y* W6 C! T; Q/ P/ U8 S* q
    # G! C$ v0 R% r5 N# ^: [- ^
    利用语法批量插入数据,可能很多小伙伴都会了,但是我还是死皮赖脸说一说吧!
    5 r: V  N$ ~3 N( E/ e9 N+ i. u* v8 r* C
    0 L7 @( Y' [( r7 b  S  e: I2 g比如这样,就是一个99乘法表的数据,逻辑是和学语言的时候打印99乘法表一样的,只不过这里把打印变成了写入Excel; W; O0 S2 \* G: J

    % y/ q" K( y6 Vfor i in range(0, 9):
    + G. O. `5 n- |+ C. U    for j in range(0, i+1):
    % O0 I2 b# _- h1 s3 v        workSheet99.write(i, j, "%d * %d = %d" % (i+1, j+1, ((i+1) * (j+1))))
    - k* b& O. u( P1 O% I* i1
    1 R4 F! S2 {" r  I! p2 e2% K7 s8 T2 t" g" b
    3; K2 W3 ?7 B! ~% \* m% p; n
    当然,还有很多很多操作,利用语法去实现,你会发现批量插入Excel数据如此简单,对于很多经常使用Excel批量插入或者处理数据人,感觉世界都轻松了起来!或许这就是程序改变世界吧!也验证了那句:人生苦短,我用Python!
    : u* v, s& C6 ^& f, |
    ' D5 T) v, }8 b; O# x# k报错注意
    1 T& B# t5 n7 [7 r/ y. N0 [( M# m6 T8 @: i" `
    如果你在进行这一系列操作的时候,报错了,点击错误链接跳转的是保存文件那一行,并且是这样的错误,那么恭喜你,没关Excel(我经常这样),因为你打开了这个数据表,他就被WPS之类的软件占用了,程序就没法对其进行读写操作了,所以这点是需要注意的!
    % D; K% p& A6 n
    4 R+ A2 U- y) H: `  L5 MPermissionError: [Errno 13] Permission denied: 'xxxxx.xls'% S4 I3 b$ q6 n. J0 W

    2 F9 X. G: z+ p; h, P0 Q! {0 K/ }
    $ L/ C$ ^" }1 Z7 C1 G% q9 G————————————————# N# {' M2 d1 x9 P
    版权声明:本文为CSDN博主「Android_YU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    0 o7 w/ h) d: N& G原文链接:https://blog.csdn.net/qq_44720366/article/details/106152028
    $ }9 [) e. F% Q' r6 T' U0 M
    , v0 E% W$ x. {" W& w. _2 F" \3 n- n6 Z% j8 f3 t5 P5 Y# o0 y
    & t1 @) J$ v! Q& b' G
    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-6-2 01:27 , Processed in 0.300049 second(s), 54 queries .

    回顶部