QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 5661|回复: 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
    / q# e  ~9 U, q* J; d: C& D: O
    如何用Python提高办公(Excel)效率?8 n! t9 R: V- q0 l0 {' E
    这几天在家里利用网络视频教程学习了一下简单的Python爬虫,然后需要把爬取的数据保存到Excel表,就接触了一下 xlwt 这个Python库,不用不知道,一用吓一跳,当我写一个99乘法表,连带我导包只需要 7 行代码的时候,我才想起来,为啥那么多文员的招聘上写着 “会Python的优先” 了 ,想想语言里面的那些语法,再想想配合起来用,几万行数据也不过几行代码即可实现,那效率简直是快到令人难以呼吸啊!
    : G/ m" a1 T" E文章目录
    2 e) F0 G4 b. M6 _  z. A
    ( v- h1 o2 v; V) i( A准备xlwt库
    ( P5 S* }& ~' q安装xlwt包7 P( Y* X, G4 K  ^9 \  @2 n
    Python文件中导入包0 n. w+ }6 N3 K1 O; p
    xlwt使用
    : u/ n  r" h) J) Y创建WorkBook对象! Y; d! a6 w. q0 O
    创建Sheet5 E, E6 o0 {' {$ c, s! J. K
    添加数据+ i, ^0 @: c  `- d8 Y
    保存文件
    4 A6 \2 d( d+ ^5 i拓展
    ) Z+ W+ {; W3 A# d* Y6 P+ h批量插入
    3 B' t$ i+ t: l! c% r报错注意
    1 K+ o8 @& _) @8 s8 b. X1 b+ X准备xlwt库
    8 B( v3 ]( w$ \2 z/ @+ L' D' B
    5 J, v- p5 d( @4 D: WPython里面经过多年沉淀下来的库也是数不胜数,并且很多库的功能都非常强大,我都觉得以后哪怕是一个简单的文员都需要掌握Python了,虽然现在还不算是硬性要求,但是这种趋势已经在社会上形成了,毕竟互联网时代是个快节奏时代,能有高效率的办公谁还喜欢低效率呢?
    0 i2 G4 c4 `& J; f, E* p0 V
      d: w8 Y/ p& N安装xlwt包
    : D' }7 ?. y  q+ n& n8 I% A
    & r. ?! q8 A0 I4 V8 i& [' WFile ->> Setting ->> Project:Name ->> Project Interpreter ->> 右边 + 号 ->> 搜索xlwt ->> 选中xlwt ->> 左下角 Install Package ->> 等待安装完成
    ' j) E7 v" q/ Z% k& @/ G
    1 a+ S1 K# J9 i* q( `5 M' f6 b  R 1.png
    - B: m9 x2 i8 `# e, c# w; [ 2.png
    , a/ d9 `# ~  |% _/ o* n
    ) W& P& U8 Y- y8 D4 ]Python文件中导入包
    ' B! @7 g; j1 \+ T' @$ @
    $ [& q! z3 b: [% ^+ L! s: gimport xlwt # 导入 xlwt 包
    8 @& Y) a) B8 ]4 G" O* K3 k1
    % E" v3 Q1 x( _2 h% qxlwt使用
    ; x' r3 V1 u7 m5 M& f' K, E9 d7 j2 D* B" p
    xlwt库的使用也非常简单,简单的写入数据可以按照如下四步(一步一行代码)走:
    & x& i& O  l5 ^$ C1 o6 t& H" j$ o; v
    创建WorkBook对象
    - m' E2 g* A+ b3 a, o1 _0 d0 z! W; w
    创建WorkBook对象就约等于创建了一个Excel文件了,创建对象的时候只需要设置一下编码格式就行了,默认是ASCII,所以我们一般都需要设置一下 “UTF-8”
    5 ^4 i, s2 S  I# v0 I# f3 h# X( l8 T5 X7 P" f6 s0 X  c: M
    workBook = xlwt.Workbook(encoding="utf-8")  # 创建workBook对象/ Y, T. [* o0 c/ ^: b' c) {- g3 V- ?
    18 l9 i6 j& ?& _
    还有一个不常用的属性:压缩等级,直接不写就是默认 0; o6 y9 s' E- }! ^  `
    8 p" {* l! j, B9 |9 m
    # style_compression 是表示设置压缩的等级
    6 x4 I  B2 V" _+ J" ]' ]3 m& eworkBook = xlwt.Workbook(encoding="utf-8",style_compression=0)# b$ R9 ~: L7 T) r4 ^2 X
    1
    % H* ~- B5 o+ z, l: O( s1 c8 X+ f2+ T* W1 U7 d2 `
    创建Sheet3 J3 K, r7 m2 y2 a

    9 O+ X! ]3 {$ Z5 m& H3 ?用过Excel的人应该都知道,一个xls(或xlsx)文件是可以有多个表的,当然可能我们很多时候习惯每个文件只有一个表有数据。这里只需调用WorkBook的 .add_sheet() 方法,设置一下表名,即可创建一个表,当然我们默认是设置一下覆盖属性:cell_overwrite_ok=True 表示可以覆盖原有数据进行写入操作: Q  c" y4 A: L: o% w

    : R: J3 f" k; k) J$ gworkSheet = workBook.add_sheet("sheet1",cell_overwrite_ok=True)
    ! X6 V2 q! z$ k4 x9 d" Q1* ^: \' x7 q" W/ v" |( X
    添加数据6 S9 o- I, d8 {# ^0 _7 A

    / S" z! M7 a9 m7 X5 `文件有了,表有了,自然就剩下添加数据了,不然咱建个空文件、空表干啥呢?右键新建它不香嘛?写入数据的操作也是简单至极,调用workSheet的 .write() 方法,填入 行、列、数据 三个参数即可插入数据(作为一个程序猿,第一个数据当然要是神圣的:Hello World !)- D9 U+ P8 m6 ^4 A- ~0 V7 ^0 F
    ) |. P7 g* b6 ?* i& z) Z  |# T
    workSheet.write( 0, 0,"Hello Wolrd !")
    , M9 w* \5 K  c1 [% e# w) c1
      L0 z/ }7 s8 V; o" L2 v) e保存文件
    4 X: y2 f! {  p8 G5 o
    4 n' ]- E, \% _/ o- J文件创建了,并不代表保存了,所以在写入完数据以后需要进行文件的保存(这里是保存在当前Python文件的同一个文件夹下)
    ( l  k3 c0 K! N8 J3 I7 r% D$ g8 \
    - ^% o0 K4 ?( D& S6 a) G& qworkBook.save("Hello World.xls")
    5 P* ]! m5 B( S# I$ V1
    6 j' w$ K" B0 U: \  X( e- P拓展  c0 M& R' ?1 z& i, ?* Z* F! f
    # {" c( Y3 _) H: s
    批量插入! j# Z4 x4 b% L' M1 o1 t
    / |0 Y3 e. U$ }( ]$ ?
    利用语法批量插入数据,可能很多小伙伴都会了,但是我还是死皮赖脸说一说吧!7 y# Z. ^" w+ D3 z
    7 x( p5 Y" R: R1 P% K4 ?, t; C- C
    比如这样,就是一个99乘法表的数据,逻辑是和学语言的时候打印99乘法表一样的,只不过这里把打印变成了写入Excel
    2 k" q! I  [* p9 \& \; }( J1 |) K: b2 O, v0 [6 [1 j
    for i in range(0, 9):
    1 S6 ?) h( P( C& C+ L4 j' C6 D    for j in range(0, i+1):
    ' y, r- J# ~+ t6 \; n2 t+ ]7 s        workSheet99.write(i, j, "%d * %d = %d" % (i+1, j+1, ((i+1) * (j+1))))7 R4 V) X( y6 A3 B" l
    1
    6 W- A9 k: v% e2
    & Z8 y" \7 _0 F9 y' F' c3% ~0 f7 ?7 v4 |
    当然,还有很多很多操作,利用语法去实现,你会发现批量插入Excel数据如此简单,对于很多经常使用Excel批量插入或者处理数据人,感觉世界都轻松了起来!或许这就是程序改变世界吧!也验证了那句:人生苦短,我用Python!$ @* e' j' J0 L" a
    0 a/ M+ \3 J' j: |: X5 v# P, m
    报错注意  N4 H2 u/ Z) F: Y/ E! ~) Q. [- R

    * Z  B# \. U. a+ P/ W: c如果你在进行这一系列操作的时候,报错了,点击错误链接跳转的是保存文件那一行,并且是这样的错误,那么恭喜你,没关Excel(我经常这样),因为你打开了这个数据表,他就被WPS之类的软件占用了,程序就没法对其进行读写操作了,所以这点是需要注意的!
    ) E: w- z, ^, I- m  i$ i" j9 x3 l4 q) [; E- e
    PermissionError: [Errno 13] Permission denied: 'xxxxx.xls'9 l! S) Y8 ^& b  f
    1 ]: h' X' ~; n5 h% Z9 e0 m- B

    ( G/ ^7 @9 K. a: a————————————————
    9 l+ z9 J$ W9 D# |" t- {: K: L版权声明:本文为CSDN博主「Android_YU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    3 G! A" J! r3 Y. o原文链接:https://blog.csdn.net/qq_44720366/article/details/106152028: ^: c4 _1 g9 ~. ?
    8 \) w) d, o1 t3 F# e
    ) h) h' C3 q: q, Q- f6 {

    3 t4 h, D2 R/ Q8 Q
    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, 2025-8-18 17:12 , Processed in 1.737965 second(s), 54 queries .

    回顶部