QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5990|回复: 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
    ) x3 R0 H: {2 j+ C5 Z: ~8 P
    如何用Python提高办公(Excel)效率?
    5 [$ {. G2 E1 V0 E( I$ t这几天在家里利用网络视频教程学习了一下简单的Python爬虫,然后需要把爬取的数据保存到Excel表,就接触了一下 xlwt 这个Python库,不用不知道,一用吓一跳,当我写一个99乘法表,连带我导包只需要 7 行代码的时候,我才想起来,为啥那么多文员的招聘上写着 “会Python的优先” 了 ,想想语言里面的那些语法,再想想配合起来用,几万行数据也不过几行代码即可实现,那效率简直是快到令人难以呼吸啊!
      [7 i' W% ~- _- i; Q% i文章目录% \5 |$ ?" S# l/ b$ F. ?; H6 @

    8 G1 \$ D0 a3 L( w准备xlwt库) D: O2 r9 `; \& ?% Y7 T
    安装xlwt包
    8 c- k- J! i! a8 `' _Python文件中导入包
      Y. ]- \5 h/ p! @7 ?xlwt使用% d. k4 K6 b  ~8 o0 s( N; U( M# O
    创建WorkBook对象# |$ j; X/ E2 x% \. F
    创建Sheet/ v0 P! @9 h6 r; v! g! f4 r
    添加数据
    + Y1 G; ~5 o2 W0 @" z保存文件6 u* C6 U0 o% {* `; ^4 e5 @
    拓展* q2 S6 S' P- R
    批量插入
    * j6 a, a' h  @! H5 ]  L报错注意
    ; n4 [9 f* E! b! l7 W3 p准备xlwt库
    3 w/ a# N8 \! y7 c( C9 ^( c
    ' `) V4 ?) e% O3 b2 lPython里面经过多年沉淀下来的库也是数不胜数,并且很多库的功能都非常强大,我都觉得以后哪怕是一个简单的文员都需要掌握Python了,虽然现在还不算是硬性要求,但是这种趋势已经在社会上形成了,毕竟互联网时代是个快节奏时代,能有高效率的办公谁还喜欢低效率呢?
    # K" t& @' @6 T4 Y' a+ j6 d  {8 [
    安装xlwt包
    & j1 Y! @0 _0 o. }4 ?" b" X
    * w" z6 {. l- L) O1 bFile ->> Setting ->> Project:Name ->> Project Interpreter ->> 右边 + 号 ->> 搜索xlwt ->> 选中xlwt ->> 左下角 Install Package ->> 等待安装完成
    7 \/ r' q( L; w$ Q: r3 R' ^8 h+ V9 Q$ Q8 p5 E# w* V
    1.png   n2 \+ M4 n" F' O% I
    2.png
    7 k! _4 S% Q: V: \$ x7 q0 h; G! }
    7 n* Q) k' {9 j! t& f: B' _Python文件中导入包
    ! i" l: L* l5 G& S" ]! e# h" b* e
    . o4 K) X6 E, C: v& ]import xlwt # 导入 xlwt 包
    / g5 S% d( Y$ m. S1) U" W3 I/ M, {: R! I
    xlwt使用5 Q( ?+ y% {/ h. j

    ! N  c" X! C& \/ `xlwt库的使用也非常简单,简单的写入数据可以按照如下四步(一步一行代码)走:3 y9 |" k/ z4 W; W! v
    9 J4 R1 z& @4 a, m: W
    创建WorkBook对象
    - o9 Z5 d8 o' `
    + _+ ?" l) d8 ^2 m6 S0 S创建WorkBook对象就约等于创建了一个Excel文件了,创建对象的时候只需要设置一下编码格式就行了,默认是ASCII,所以我们一般都需要设置一下 “UTF-8”- ^  J1 p8 h! z. A8 K2 o

    . s" [  ~$ ]" s: U/ Q5 j$ x/ IworkBook = xlwt.Workbook(encoding="utf-8")  # 创建workBook对象
    + ?, s9 T6 Y/ g  K( C1
    ! x8 ~+ i. i! j! Z) D' U还有一个不常用的属性:压缩等级,直接不写就是默认 0
    4 p8 H& E1 S& k3 G! g0 `. [+ `% Q( a6 l
    # style_compression 是表示设置压缩的等级
    . @6 P& S- ^7 q) Q# `) zworkBook = xlwt.Workbook(encoding="utf-8",style_compression=0)& _3 t# O+ O/ t8 w7 p$ \3 |" c! P
    12 ]8 f3 z& E/ q$ P
    2( `6 f1 X' L6 i/ x- \; M
    创建Sheet: ^7 Q$ [3 p# m% {  |2 i- t

    7 p6 }# W0 L' B) @4 Y7 i用过Excel的人应该都知道,一个xls(或xlsx)文件是可以有多个表的,当然可能我们很多时候习惯每个文件只有一个表有数据。这里只需调用WorkBook的 .add_sheet() 方法,设置一下表名,即可创建一个表,当然我们默认是设置一下覆盖属性:cell_overwrite_ok=True 表示可以覆盖原有数据进行写入操作
    9 k2 O5 O* D% u6 M
    % S7 |4 j! b$ H1 ^/ [1 G5 bworkSheet = workBook.add_sheet("sheet1",cell_overwrite_ok=True)
    " q$ u% |8 q! A3 o( z1
    ( g# p8 A# L4 G1 {; O6 {  M添加数据
    - U% V2 |2 `, S3 I4 R  p, A- {4 @2 p5 L- I0 K. ^! h2 n
    文件有了,表有了,自然就剩下添加数据了,不然咱建个空文件、空表干啥呢?右键新建它不香嘛?写入数据的操作也是简单至极,调用workSheet的 .write() 方法,填入 行、列、数据 三个参数即可插入数据(作为一个程序猿,第一个数据当然要是神圣的:Hello World !)
    6 @9 h. V, D; g; y. J* ~7 b2 G
    : U$ B- s9 L# N9 r& Z  e! c5 v% W4 hworkSheet.write( 0, 0,"Hello Wolrd !")  \* P5 \* U  i5 g* ^7 ]8 _- g% c" Q
    17 g$ ]6 d) J- x$ T  J" m; D8 d0 d
    保存文件
    ' ~5 N3 z# X6 Q2 \
    / [" b! N; u4 ^) o& V7 U! ~文件创建了,并不代表保存了,所以在写入完数据以后需要进行文件的保存(这里是保存在当前Python文件的同一个文件夹下)4 u0 N+ f/ B/ Q0 M$ L# W! F+ Z
    1 }$ K! O8 L# `
    workBook.save("Hello World.xls")6 D+ e: F$ T6 f- n3 Q  ]
    1
    8 b3 I. ~) E' F拓展
    & p! f+ b" _) E
    ' I8 S; v2 v6 j5 N批量插入+ r! D$ ]1 z. x7 t" P
    + {' M$ u& x. k) r% C
    利用语法批量插入数据,可能很多小伙伴都会了,但是我还是死皮赖脸说一说吧!' |% F$ n0 k% e

    4 R' B8 C# |; c" y, Z6 \比如这样,就是一个99乘法表的数据,逻辑是和学语言的时候打印99乘法表一样的,只不过这里把打印变成了写入Excel1 F) @9 r$ U) E' s! K9 D
    % M& A7 i: M4 f: V! j6 B4 X5 P
    for i in range(0, 9):
      {( c/ _: o2 ]' ?) f  m9 ~    for j in range(0, i+1):8 v3 K- o4 D" Q) o" g
            workSheet99.write(i, j, "%d * %d = %d" % (i+1, j+1, ((i+1) * (j+1))))
    0 Z$ @* S9 i  ?5 W; Z5 r) t; ]1 E3 f' I/ e1
    1 h; Z, l4 g5 A26 c) w2 B7 s7 ?" S
    35 J/ {8 E5 }; ?( O. U  Z& c
    当然,还有很多很多操作,利用语法去实现,你会发现批量插入Excel数据如此简单,对于很多经常使用Excel批量插入或者处理数据人,感觉世界都轻松了起来!或许这就是程序改变世界吧!也验证了那句:人生苦短,我用Python!6 y2 f' Z: S. u% S% V" O
    ( l3 Z! n9 @$ {2 d& [
    报错注意2 |. v  f4 D3 _. R# @2 }: ^0 S
    . U2 I3 R0 O3 E2 h4 T3 F
    如果你在进行这一系列操作的时候,报错了,点击错误链接跳转的是保存文件那一行,并且是这样的错误,那么恭喜你,没关Excel(我经常这样),因为你打开了这个数据表,他就被WPS之类的软件占用了,程序就没法对其进行读写操作了,所以这点是需要注意的!' c7 t  v$ I. f) y# J3 |" c0 I

    ' g6 p8 h3 }1 l& a# M1 K, nPermissionError: [Errno 13] Permission denied: 'xxxxx.xls'
    9 I. v/ a4 [" {2 z) _' A! T0 I0 C$ ]1 p  Q# N$ i/ w1 Y
    3 x: `( V6 x$ _
    ————————————————8 M# Y+ B1 R- E* J0 f
    版权声明:本文为CSDN博主「Android_YU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    , o. c! ?) C0 O: y2 w6 M原文链接:https://blog.csdn.net/qq_44720366/article/details/106152028; {& I; |1 m: H. M3 `7 s

    3 c/ \6 U, m. g7 S4 f6 M. N& C, ^( _" K3 Z
    ; }' \8 e- A) J/ c. 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-6-9 08:28 , Processed in 0.347408 second(s), 54 queries .

    回顶部