数学建模社区-数学中国

标题: 如何用Python提高办公(Excel)效率? [打印本页]

作者: 杨利霞    时间: 2020-5-30 14:47
标题: 如何用Python提高办公(Excel)效率?

5 v9 _: g, @1 d5 r9 K3 I- K, i如何用Python提高办公(Excel)效率?
+ i3 V! n/ I- Y* |$ B$ M这几天在家里利用网络视频教程学习了一下简单的Python爬虫,然后需要把爬取的数据保存到Excel表,就接触了一下 xlwt 这个Python库,不用不知道,一用吓一跳,当我写一个99乘法表,连带我导包只需要 7 行代码的时候,我才想起来,为啥那么多文员的招聘上写着 “会Python的优先” 了 ,想想语言里面的那些语法,再想想配合起来用,几万行数据也不过几行代码即可实现,那效率简直是快到令人难以呼吸啊!
) U4 K- \' m/ r! x# p文章目录
, d( c# R' `0 M* V4 t- d. h- ^$ m8 w6 C% t& h8 I2 y# S* s
准备xlwt库
- A  P6 I6 x" S5 P& g* I安装xlwt包
6 `* T4 s# P9 D1 p9 o0 _Python文件中导入包
9 Z0 V& T+ n# Y- j4 p1 G- Yxlwt使用7 b' J7 W5 X# j. }3 Y3 x  s* E
创建WorkBook对象
" D" v/ B1 A2 y$ G* d) L* s创建Sheet
  a0 @; Q& f* c" k) b3 `添加数据8 J% p- k3 c7 Z4 s
保存文件
: ?! w4 ^$ ?( [/ b: S/ C% ~; ]  e, r拓展
: s& ]+ [6 L7 O- f& Z) {. Z7 t9 m批量插入& W5 L4 @$ ~0 q  s6 {5 A: q" d
报错注意
( K) [8 |( }' n& Z! h8 }8 m5 N准备xlwt库
' p8 ?/ R' [4 `# ^: a, P2 w
4 c$ {$ a7 V4 c+ cPython里面经过多年沉淀下来的库也是数不胜数,并且很多库的功能都非常强大,我都觉得以后哪怕是一个简单的文员都需要掌握Python了,虽然现在还不算是硬性要求,但是这种趋势已经在社会上形成了,毕竟互联网时代是个快节奏时代,能有高效率的办公谁还喜欢低效率呢?- Q* M- N, X' b7 x

+ N" c+ c" C3 n# O  g安装xlwt包
! D# _; Y( F1 |  Y, q0 j* @& |" g& Q0 `4 D4 x0 N
File ->> Setting ->> Project:Name ->> Project Interpreter ->> 右边 + 号 ->> 搜索xlwt ->> 选中xlwt ->> 左下角 Install Package ->> 等待安装完成  t$ B/ e' t3 Y* p! }6 g

. G, N- x- K# v4 E* ~3 p) k  m" Z 1.png
$ n: Q. t* r( M! ^( g  u+ X 2.png
- V7 T9 F4 j' S
' C4 l% o- I  l4 a  lPython文件中导入包
1 r, [" t% O- r( [& P0 b/ x: P' R6 F1 _# N
import xlwt # 导入 xlwt 包. a0 z$ o$ R( ?& z/ r
1
* `5 D* {7 m* Y/ I+ ~- v7 S4 P, rxlwt使用8 f9 B( _+ ?0 N& U: |9 V9 g
8 M) \, E. s2 k
xlwt库的使用也非常简单,简单的写入数据可以按照如下四步(一步一行代码)走:. a% l3 f  L$ ^8 b# b
7 W- e) P, ^1 v) x3 j( f! Z, q* H) P
创建WorkBook对象  r; r6 y, ^6 A) p

7 h" Y3 {( P% [2 {+ J" J创建WorkBook对象就约等于创建了一个Excel文件了,创建对象的时候只需要设置一下编码格式就行了,默认是ASCII,所以我们一般都需要设置一下 “UTF-8”
: I4 B  ?& {0 m) |/ O4 U2 T5 ?
6 _) P% Z' k+ g2 I7 oworkBook = xlwt.Workbook(encoding="utf-8")  # 创建workBook对象
3 i4 K. S4 `- i& a  K: A1 }1+ @5 W4 T8 Z! K5 k4 F& w! m
还有一个不常用的属性:压缩等级,直接不写就是默认 0, d+ \" U0 ^/ Z8 P4 ^

8 a+ g. w, j" t2 n0 M# style_compression 是表示设置压缩的等级: W4 H# y& k# `8 ]: P
workBook = xlwt.Workbook(encoding="utf-8",style_compression=0)1 x6 h7 K& o& I6 U0 v% }3 j" D
1% x6 [. k, O" Z( x: G
24 n8 S8 s& ]/ k2 q, f
创建Sheet: c8 J( K# b1 @

8 z6 U$ _* r3 y4 a6 W% G9 V用过Excel的人应该都知道,一个xls(或xlsx)文件是可以有多个表的,当然可能我们很多时候习惯每个文件只有一个表有数据。这里只需调用WorkBook的 .add_sheet() 方法,设置一下表名,即可创建一个表,当然我们默认是设置一下覆盖属性:cell_overwrite_ok=True 表示可以覆盖原有数据进行写入操作7 l1 q0 P" i9 R! i8 g  G$ ^5 q

- Y4 s  [" O9 Q3 cworkSheet = workBook.add_sheet("sheet1",cell_overwrite_ok=True)& D: n7 @: Y5 Z
18 s+ l. p) c3 h
添加数据3 ~' z& `$ S! f: ^4 h

. a* d' y) {' ]文件有了,表有了,自然就剩下添加数据了,不然咱建个空文件、空表干啥呢?右键新建它不香嘛?写入数据的操作也是简单至极,调用workSheet的 .write() 方法,填入 行、列、数据 三个参数即可插入数据(作为一个程序猿,第一个数据当然要是神圣的:Hello World !): P! M1 U7 O. O, C, N% h- x7 d
' T( [( Z( g) {5 t) X
workSheet.write( 0, 0,"Hello Wolrd !")
7 F" ?) G4 q) h3 d( N8 P1
% l; i# |" v- N9 R7 r) _$ {保存文件
/ p4 K  u! [3 M0 u# L7 W2 B
- _  k: w9 M  Z% B8 |文件创建了,并不代表保存了,所以在写入完数据以后需要进行文件的保存(这里是保存在当前Python文件的同一个文件夹下)" ]% s  V" ]. P5 G1 \' w, \- i  B
$ D3 t) A. W7 d8 ?: t5 J2 L
workBook.save("Hello World.xls")6 A- N2 F* [! K- X  Z9 X
11 v% i2 t7 x$ D3 W* B- p% F
拓展' ^6 j5 r. K; M; u  l

/ P. P& ]" }" Z; s* q% }; g6 e批量插入4 K  p4 l/ P* C# T: C9 ^( G
* `1 M1 ^; Z- _6 d% }) B
利用语法批量插入数据,可能很多小伙伴都会了,但是我还是死皮赖脸说一说吧!* A. E! l; l% U1 ?4 U- N

- Y+ w4 n- k# g比如这样,就是一个99乘法表的数据,逻辑是和学语言的时候打印99乘法表一样的,只不过这里把打印变成了写入Excel2 ^! A- g5 f! t6 z

; i! n- m0 l0 m4 M; _5 T: Ifor i in range(0, 9):
7 o4 M$ L; L" K) W0 j! i    for j in range(0, i+1):3 b, b' i7 _( }( V2 I
        workSheet99.write(i, j, "%d * %d = %d" % (i+1, j+1, ((i+1) * (j+1)))), t9 |( Q0 A7 E2 G
1
$ \3 F* Y# X# B0 i! @& l2
6 l% c( i( V' @+ o3
& {' ^, ~1 V- a当然,还有很多很多操作,利用语法去实现,你会发现批量插入Excel数据如此简单,对于很多经常使用Excel批量插入或者处理数据人,感觉世界都轻松了起来!或许这就是程序改变世界吧!也验证了那句:人生苦短,我用Python!
7 a+ m( V$ ^, M. H2 `
. d7 d0 c$ w3 v8 K8 e$ d7 V, b- m报错注意
! G/ S# J0 j- i9 D% j$ ~3 x, F% ?0 R7 x( S8 ~; D, T
如果你在进行这一系列操作的时候,报错了,点击错误链接跳转的是保存文件那一行,并且是这样的错误,那么恭喜你,没关Excel(我经常这样),因为你打开了这个数据表,他就被WPS之类的软件占用了,程序就没法对其进行读写操作了,所以这点是需要注意的!1 ?; i; Y0 U& Z0 J" y' @
, h* o/ ~) o) `* H6 p0 }
PermissionError: [Errno 13] Permission denied: 'xxxxx.xls'  b: D: a' [2 D0 n! B  E
, G1 q/ ^5 L" s* M
: ?! Y: `( v7 W
————————————————# T$ g4 I5 b; D' z. H6 v9 C
版权声明:本文为CSDN博主「Android_YU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
$ P+ q* {6 u, _* q原文链接:https://blog.csdn.net/qq_44720366/article/details/106152028- x6 N; ?+ G7 e# n0 u
2 U7 l) w2 T' Z  Q- j
- u, n* V: x/ V: G: N: r4 _+ M
  W/ E3 D# A5 `8 x$ `& S





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5