QQ登录

只需要一步,快速开始

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

    & V0 k. W7 G7 X$ E2 T% T如何用Python提高办公(Excel)效率?* O2 U; O6 Z; j3 W
    这几天在家里利用网络视频教程学习了一下简单的Python爬虫,然后需要把爬取的数据保存到Excel表,就接触了一下 xlwt 这个Python库,不用不知道,一用吓一跳,当我写一个99乘法表,连带我导包只需要 7 行代码的时候,我才想起来,为啥那么多文员的招聘上写着 “会Python的优先” 了 ,想想语言里面的那些语法,再想想配合起来用,几万行数据也不过几行代码即可实现,那效率简直是快到令人难以呼吸啊!3 h4 S  r! Q- V) H+ {+ g
    文章目录1 o( d# }' ]7 F* V: ~* t0 E
    * E1 J' c- m4 ]9 n, b! v! q
    准备xlwt库
    8 \( t0 I) g" X  ?3 Y7 a* [1 l安装xlwt包
    4 ?( x6 k' b# sPython文件中导入包
    ' f- I1 I& J- p5 ^xlwt使用# q8 w  Q2 k: e5 B& M
    创建WorkBook对象6 N. y' q7 c* w8 s9 R" L$ m
    创建Sheet8 T" D/ `( d5 u5 F* h
    添加数据
    6 [2 T( ~' g8 @! ]% [保存文件
    % g) i! r8 o, E8 d拓展; A2 D1 t7 U* {, H7 p
    批量插入
    ! E% Q$ [4 c& z1 r! q报错注意
    " k/ B, V3 y& p1 f! v准备xlwt库& F( o! J6 x: C  Q7 D* s
    ) ], ~7 |) N- W* p( o. S+ J0 \
    Python里面经过多年沉淀下来的库也是数不胜数,并且很多库的功能都非常强大,我都觉得以后哪怕是一个简单的文员都需要掌握Python了,虽然现在还不算是硬性要求,但是这种趋势已经在社会上形成了,毕竟互联网时代是个快节奏时代,能有高效率的办公谁还喜欢低效率呢?
    5 e0 }! F8 n+ Z
    - I3 D( V' U- S# @" a  R' a安装xlwt包
    ; u* o% [- {  c' b0 U4 p& o5 c, Y! n4 d) Y- R1 n  R  _8 x/ n! d% I
    File ->> Setting ->> Project:Name ->> Project Interpreter ->> 右边 + 号 ->> 搜索xlwt ->> 选中xlwt ->> 左下角 Install Package ->> 等待安装完成
    : a. V6 a+ Z" a! S6 j" g; g- W& s1 x. D) ~
    1.png
    0 A5 M$ O7 ?+ v6 G 2.png
    1 P: [+ p; G( P3 l( L( d" a' a
    ) J8 E/ Q9 F- V3 {Python文件中导入包$ f" H: _9 K' X: k5 R  Y
    1 D' S) X2 P8 E7 g
    import xlwt # 导入 xlwt 包
    & I6 V* J; Q( c8 v  x! }( T. q1 l' G1/ N. B6 V( j( e3 k! y) Z9 \
    xlwt使用
    ' t; F, r: R. A. n% ^8 H* D9 x) A/ S8 c
    xlwt库的使用也非常简单,简单的写入数据可以按照如下四步(一步一行代码)走:9 P. o; q/ k% V$ `7 i. g9 ?
    $ Q" f4 [( G, k+ ~$ J& c8 Y
    创建WorkBook对象; F+ J6 }+ }- a/ k. y: [# B9 I" f

    0 G' T8 O# b, E创建WorkBook对象就约等于创建了一个Excel文件了,创建对象的时候只需要设置一下编码格式就行了,默认是ASCII,所以我们一般都需要设置一下 “UTF-8”
    2 X8 F7 u/ A' R. e1 }9 U
    8 u* s+ l9 J' `9 R0 ]6 n2 YworkBook = xlwt.Workbook(encoding="utf-8")  # 创建workBook对象0 j# ?! X1 ^5 E! m, I
    1
    5 ^9 {- y- E* d. C3 m$ x$ b. L+ p9 {还有一个不常用的属性:压缩等级,直接不写就是默认 04 s3 N2 V9 L+ J) h& [4 e$ L; n
    7 J- k0 V0 N! |' a
    # style_compression 是表示设置压缩的等级. w/ t" X+ I7 G5 f3 w
    workBook = xlwt.Workbook(encoding="utf-8",style_compression=0)
    3 [  n3 V0 f. h# v+ O; x; j19 d% V8 E* o3 e  B! T% R$ g, S. x
    20 e. x5 G2 q; D5 v: X7 H4 a0 Q: ~
    创建Sheet
    ! j" Y4 t$ O2 \0 U- P0 N6 E
    6 l; F' {- b% F0 L9 A. a) V用过Excel的人应该都知道,一个xls(或xlsx)文件是可以有多个表的,当然可能我们很多时候习惯每个文件只有一个表有数据。这里只需调用WorkBook的 .add_sheet() 方法,设置一下表名,即可创建一个表,当然我们默认是设置一下覆盖属性:cell_overwrite_ok=True 表示可以覆盖原有数据进行写入操作* h& w4 Y* Q3 V; O! u& [

    7 K6 U6 j% V8 @workSheet = workBook.add_sheet("sheet1",cell_overwrite_ok=True). y" Y5 ]1 T* k1 K0 D4 A8 U3 Z/ e
    1
    1 p6 V2 @7 c9 L添加数据0 G% i% f6 V7 p. J% W

    - v; c; p: V- }4 m: p  X7 W文件有了,表有了,自然就剩下添加数据了,不然咱建个空文件、空表干啥呢?右键新建它不香嘛?写入数据的操作也是简单至极,调用workSheet的 .write() 方法,填入 行、列、数据 三个参数即可插入数据(作为一个程序猿,第一个数据当然要是神圣的:Hello World !)1 |- f) _. ~6 f+ n9 t4 }7 t
    6 I9 r8 _3 W0 g6 `0 z) _9 w: a
    workSheet.write( 0, 0,"Hello Wolrd !")
    - n  i: s) O' ?' e# P. Q1# w0 [0 ~! a! L) f- F7 w
    保存文件
    ' J, |  I; c5 U2 C
    ! [7 u& v1 }8 @" Z  P/ p文件创建了,并不代表保存了,所以在写入完数据以后需要进行文件的保存(这里是保存在当前Python文件的同一个文件夹下)9 F, ^$ r, g( F6 v) G6 ~

    . T6 v; i# h6 c5 S% L9 {workBook.save("Hello World.xls")! r7 j8 g; c6 c) H: s
    1: E, n7 r  j4 ~+ j' ]; M
    拓展
    4 ?( t; h" t6 W* R2 s7 x) r4 Y* |  E3 s
    批量插入
    7 c3 h! `' [% g; Y! O( B3 {+ P
    - D# e+ S6 u; F' a利用语法批量插入数据,可能很多小伙伴都会了,但是我还是死皮赖脸说一说吧!
    + p" h% B( M' x0 c. n. B" K
    . g+ D( l+ E$ a. }( S8 G比如这样,就是一个99乘法表的数据,逻辑是和学语言的时候打印99乘法表一样的,只不过这里把打印变成了写入Excel
    # x$ m3 l4 A& Y! W) ~
    7 x% E, y+ R" l2 B/ c- S4 ~for i in range(0, 9):
    2 r9 I" \7 t- X' v    for j in range(0, i+1):
    ( d$ t: q% M* B( s. B        workSheet99.write(i, j, "%d * %d = %d" % (i+1, j+1, ((i+1) * (j+1))))
    ; P" A! v. }& o! G% c  c# E1
    ( g3 v- u% w+ h* I* Y2
    : ?) s: r; B& Z# q30 n* G" C5 e% t: c1 w9 K! T
    当然,还有很多很多操作,利用语法去实现,你会发现批量插入Excel数据如此简单,对于很多经常使用Excel批量插入或者处理数据人,感觉世界都轻松了起来!或许这就是程序改变世界吧!也验证了那句:人生苦短,我用Python!
    % q4 S9 k- D  _0 ~" e- {
    & t2 |+ n$ _) m' O报错注意3 l1 G( @7 V4 [6 w
    0 m" f3 ~' y" T8 a2 R+ r
    如果你在进行这一系列操作的时候,报错了,点击错误链接跳转的是保存文件那一行,并且是这样的错误,那么恭喜你,没关Excel(我经常这样),因为你打开了这个数据表,他就被WPS之类的软件占用了,程序就没法对其进行读写操作了,所以这点是需要注意的!
    & X8 ~2 h. C0 q, \5 E* ]+ g" O" B: c$ L# G  Q. ~1 h
    PermissionError: [Errno 13] Permission denied: 'xxxxx.xls'
    8 n, l+ l' W7 G! N/ E  Q% j: R7 H; F+ i2 S7 V/ i; K
    / Y, X$ U' `, |2 @" j
    ————————————————
    . w5 E* z8 R* v# o4 ^3 I版权声明:本文为CSDN博主「Android_YU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    ' `$ L/ G2 Q, \+ V$ G原文链接:https://blog.csdn.net/qq_44720366/article/details/106152028
    " k( M8 ?; N$ h- L
    + s7 ~( a- K( I1 h7 l* a4 _; x
    ) S9 ^" C% H% \7 ^+ ]5 {- L0 h: J- F6 [  o9 z8 |0 G* o
    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-17 17:00 , Processed in 0.369175 second(s), 53 queries .

    回顶部