数学建模社区-数学中国
标题:
如何用Python提高办公(Excel)效率?
[打印本页]
作者:
杨利霞
时间:
2020-5-30 14:47
标题:
如何用Python提高办公(Excel)效率?
8 Y4 ^9 P: ?# }; q) A! @1 i& o$ O
如何用Python提高办公(Excel)效率?
4 A9 Y4 ]# \# I4 {
这几天在家里利用网络视频教程学习了一下简单的Python爬虫,然后需要把爬取的数据保存到Excel表,就接触了一下 xlwt 这个Python库,不用不知道,一用吓一跳,当我写一个99乘法表,连带我导包只需要 7 行代码的时候,我才想起来,为啥那么多文员的招聘上写着 “会Python的优先” 了 ,想想语言里面的那些语法,再想想配合起来用,几万行数据也不过几行代码即可实现,那效率简直是快到令人难以呼吸啊!
" ?) W% ~+ S. i' V. t+ r5 a- B
文章目录
$ @( Z6 E( s4 ]/ U4 M" C/ X
) u! D# h& s0 u% A
准备xlwt库
( y* {$ O' C5 J
安装xlwt包
7 C/ |% U$ Q: o3 }' y+ ~" u
Python文件中导入包
* Q$ F/ L+ c$ o+ W: u; h/ g
xlwt使用
0 n8 u) k2 J0 {% A$ \" J
创建WorkBook对象
; l- Y2 T2 X$ {6 r8 V
创建Sheet
3 n( s: J! O( V0 ?" u5 t! Q
添加数据
1 v8 A$ b% I1 e, |( V4 T8 _9 m0 _
保存文件
; l5 D4 f) m2 a$ o
拓展
, c: U7 W. Y9 Q* @
批量插入
, }* G! e: L4 V$ V! f" K$ c7 R% k
报错注意
: c% G2 N# P! T7 K$ g D* x
准备xlwt库
4 a. t0 S% ^% v0 v6 E
$ Q% p! M* c2 `# T, c' I
Python里面经过多年沉淀下来的库也是数不胜数,并且很多库的功能都非常强大,我都觉得以后哪怕是一个简单的文员都需要掌握Python了,虽然现在还不算是硬性要求,但是这种趋势已经在社会上形成了,毕竟互联网时代是个快节奏时代,能有高效率的办公谁还喜欢低效率呢?
; g0 {/ x; E# g# J8 d+ V+ m* _
) G$ b) @4 H8 W5 Z
安装xlwt包
# ]$ K% H0 H: {. O# e, L
. C% w# H' g' h* g# ~
File ->> Setting ->> Project:Name ->> Project Interpreter ->> 右边 + 号 ->> 搜索xlwt ->> 选中xlwt ->> 左下角 Install Package ->> 等待安装完成
: h1 u- T: X! w! R
! I- m. [' \1 O% A. y. R
2020-5-30 14:42 上传
下载附件
(317.84 KB)
: a( |: g+ I- i \% X" t: @& M
2020-5-30 14:42 上传
下载附件
(304.18 KB)
6 r+ a4 v! i' M: S4 ~) u
$ E) ~9 T/ a+ ?/ x
Python文件中导入包
* A" `8 c( l( O' H" d
+ J2 j2 ^- s5 D
import xlwt # 导入 xlwt 包
4 f, Y! Q# H1 Z0 H' [( }; l
1
u( I& n: I: H4 ]2 N
xlwt使用
# u* N, K9 J$ B9 b" y. p! R( \* [
& p; ^' U* V; J: u" l( ?. \. E
xlwt库的使用也非常简单,简单的写入数据可以按照如下四步(一步一行代码)走:
+ Q3 P- ?7 K& Y ]' F
8 o' z' f$ m& {' r) U; @
创建WorkBook对象
8 B& d2 W, z9 k! j& Y7 j0 m* z
5 ?; s8 s0 p& ~3 H& }
创建WorkBook对象就约等于创建了一个Excel文件了,创建对象的时候只需要设置一下编码格式就行了,默认是ASCII,所以我们一般都需要设置一下 “UTF-8”
7 U7 _& t6 b3 d1 \
' ~9 A! c# p% ]" D
workBook = xlwt.Workbook(encoding="utf-8") # 创建workBook对象
6 i* f; P3 p P, ?9 l- Q
1
" P; u* ?( |! ^+ _1 Q
还有一个不常用的属性:压缩等级,直接不写就是默认 0
' `2 C3 z1 y, B
) A- \7 J9 K* `- T- t$ N
# style_compression 是表示设置压缩的等级
" w: \0 M0 k: j+ }9 e' q$ A4 N
workBook = xlwt.Workbook(encoding="utf-8",style_compression=0)
" R. m. m% L: e8 l. c' b
1
0 b1 j2 U3 w8 z5 j# r
2
. ?5 b- F7 T r. F( Z; c( y
创建Sheet
+ m* F4 g6 {7 W7 P' R* k% E
, g! f7 o, R( y$ A1 f$ O0 g
用过Excel的人应该都知道,一个xls(或xlsx)文件是可以有多个表的,当然可能我们很多时候习惯每个文件只有一个表有数据。这里只需调用WorkBook的 .add_sheet() 方法,设置一下表名,即可创建一个表,当然我们默认是设置一下覆盖属性:cell_overwrite_ok=True 表示可以覆盖原有数据进行写入操作
+ L1 C' x0 C! A
+ d" O V2 z* W) `
workSheet = workBook.add_sheet("sheet1",cell_overwrite_ok=True)
3 @; N+ L$ q" i6 O' n" U) ]" L/ P3 o
1
3 L: |; v( c9 T
添加数据
/ g3 E5 I! O4 I/ k
- z4 L9 s9 J l6 E* I
文件有了,表有了,自然就剩下添加数据了,不然咱建个空文件、空表干啥呢?右键新建它不香嘛?写入数据的操作也是简单至极,调用workSheet的 .write() 方法,填入 行、列、数据 三个参数即可插入数据(作为一个程序猿,第一个数据当然要是神圣的:Hello World !)
- a' H/ S0 H8 \
* `5 ]) l8 u3 Q7 t/ `
workSheet.write( 0, 0,"Hello Wolrd !")
+ T0 e) e. X* n1 }# `" [
1
5 i- O( O; m) [. ?. E
保存文件
' j$ [. [) [0 X- q8 m n- H; ~% M% a% }
8 r7 a/ S/ v. W. R. r
文件创建了,并不代表保存了,所以在写入完数据以后需要进行文件的保存(这里是保存在当前Python文件的同一个文件夹下)
* j- Q( y8 o# W9 f1 U( Y
- O; h( L2 ]. B3 S
workBook.save("Hello World.xls")
. u3 V1 _9 X. z9 b \8 @9 n2 A& \5 F
1
( k+ a! J0 Z2 @" y' b9 d
拓展
; u* X7 N( w( h# t
7 S' V& z2 J3 g6 @* D) G" U+ s
批量插入
+ }3 V% Y! }% w: M, I7 Q
, g6 \' ^2 n% A+ s! u9 \" x
利用语法批量插入数据,可能很多小伙伴都会了,但是我还是死皮赖脸说一说吧!
" d0 D( f5 i D, s" c
4 e0 W5 E: L+ |
比如这样,就是一个99乘法表的数据,逻辑是和学语言的时候打印99乘法表一样的,只不过这里把打印变成了写入Excel
2 a& q# q0 }4 u6 s
* m" e2 z% x) W1 a1 j
for i in range(0, 9):
- \7 u, {2 r7 ^- s( j5 R
for j in range(0, i+1):
9 h/ y8 O7 T. L/ \
workSheet99.write(i, j, "%d * %d = %d" % (i+1, j+1, ((i+1) * (j+1))))
8 u4 x0 q, ^( G0 f( [: Q
1
' l/ q, f' n5 k2 g
2
) y$ @! x# m; x% s
3
. S- E# [ J3 y+ R) O
当然,还有很多很多操作,利用语法去实现,你会发现批量插入Excel数据如此简单,对于很多经常使用Excel批量插入或者处理数据人,感觉世界都轻松了起来!或许这就是程序改变世界吧!也验证了那句:人生苦短,我用Python!
5 l- `- b3 z/ R& o; |% ?/ d
# p% m8 c5 }# U$ }$ S/ v
报错注意
% I& @* o% l& O0 U b R8 }
' r# ]' X- ^) _3 ~" J8 R
如果你在进行这一系列操作的时候,报错了,点击错误链接跳转的是保存文件那一行,并且是这样的错误,那么恭喜你,没关Excel(我经常这样),因为你打开了这个数据表,他就被WPS之类的软件占用了,程序就没法对其进行读写操作了,所以这点是需要注意的!
/ m( \$ W; H6 f) R0 a9 A s
* L7 i5 Z7 R% v J
PermissionError: [Errno 13] Permission denied: 'xxxxx.xls'
" O7 l7 W3 Q9 Z3 Q
% p0 H" [9 B" }7 `; }
% I& G; k8 X, t5 w2 t+ b& ?
————————————————
$ r' M; l( G2 r' _' ?; A; p1 r
版权声明:本文为CSDN博主「Android_YU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
2 y+ f! t) C ]. K R. r
原文链接:https://blog.csdn.net/qq_44720366/article/details/106152028
1 P0 A; f4 ]! k: r8 u9 W& J- ~
+ M% `/ X' W; J0 L3 \' n
% ~& T" r& o4 @: v* ~
+ f# {7 \9 O; }3 X9 U# e
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5