设为首页 收藏本站
查看: 1147|回复: 0

[经验分享] Python读写excel表格的方法一

[复制链接]
发表于 2018-8-7 06:12:47 | 显示全部楼层 |阅读模式
  目的:实现用python做excel的读取、新增、修改操作。
  环境:ubuntu 16.04  Python 3.5.2
  用python读写文档,一般是操作txt文件或者可以用记事本打开的文件,因为这个操作很直接,不需要导入其他模块,但如果想要对excel表格进行操作,就需要导入其他模块,包括:xlrd(读取),xlwt(写入),xlutils(复制),一般是这三个模块,且需要另外下载,http://pypi.python.org/pypi/模块名。
  表格的读取:
  读取只需要导入xlrd模块:
import xlrd  

  
filename = 'test.xls'
  

  
# 以xlrd打开表格给book
  
book = xlrd.open_workbook(filename)
  
# 获取工作表的方法之一,用下标。
  
sheel_1 = book.sheet_by_index(0)
  
# 打印第一个工作表的名的方法之一。
  
print("Worksheet name(s): ",book.sheet_names()[0])
  
# 打印表格文件中工作表的数量
  
print('book.nsheets',book.nsheets)
  
# 打印工作表名方法之二和打印这个表的总行数和总列数。
  
print('sheel_1.name:',sheel_1.name,'sheel_1.nrows:',sheel_1.nrows,'sheel_1.ncols:',sheel_1.ncols)
  
# 打印第一个工作表中行0列1的值,用下标。
  
print('A1:',sheel_1.cell_value(rowx=0,colx=1))
  
# 打印单元格的另一种方法
  
print('A2:',sheel_1.cell_value(0,2))
  表格的新增:
  新增只需要导入xlwt模块:
import xlwt  

  
filename = 'test.xls'
  

  
book = xlwt.Workbook()
  
sheet_1 = book.add_sheet('hello')
  
sheel_2 = book.add_sheet('word')
  
sheet_1.write(0,0,'hello')
  
sheet_1.write(0,1,'world')
  
row1 = sheet1.row(1)
  
row1.write(0,'A2')
  
row1.write(1,'B2')
  

  
sheet_1.col(0).width = 10000
  

  
sheet_2 = book.get_sheet(1)
  
sheet_2.row(0).write(0,'Sheet 2 A1')
  
sheet_2.row(0).write(1,'Sheet 2 B1')
  
sheet_2.flush_row_data()
  

  
sheet_2.write(1,0,'Sheet 2 A3')
  
sheet_2.col(0).width = 5000
  
sheet_2.col(0).hidden = True
  

  
book.save(filename)
  修改已经存在的表格
  一般修改表格步骤:导入模块--xlrd读取表格--xlutils复制读取的表格--xlwt对表格修改--xlwt保存表格--删除旧表格。
  解析:对excel同时读写是不行的,细心会发现office操作表格时也是这个步骤,先是读取,如果修改了数据,会先复制一份,产生一个带$的临时隐藏文件,修改是在临时文件上操作,当用户保存时会删除旧的文件,把临时文件命名为旧文件名,感觉就像直接读写了表格,所以你没有正常关闭的表格会有一个临时文件,你没保存的东西全部在里面,也可能是部分。
  下面演示一下实际python应用步骤:
import xlrd  
import xlwt
  
from xlutils.copy import copy
  

  
# 文件名变量
  
filename = 'test.xls'
  

  
# 读取文件
  
book_r = xlrd.open_workbook(filename)
  

  
# 复制原表格
  
book_w = copy(book_r)
  

  
# 以编辑方式得到文件的第一个工作表
  
sheet_1 = book_w.get_sheet(0)
  

  
# 定义要输入的内容
  
text = ‘This is a test of Ricky.'
  

  
# 定义写入表格的单元格行号,使用下标1
  
row = 1
  

  
# 定义写入表格的单元格列号,使用下标2
  
col = 2
  

  
# 把内容写入表格
  
sheet_1.write(row, col, text)
  

  
# 删除原文件
  
os.remove(filename)
  

  
# 保存修改的文件为原文件
  
book_w.save(filename)
  说明:
  1)上面那么多定义是为了说明参数的位置和意义,可以直接把值写入参数位置,但参数使用变量可以方便复用,比如在循环中;
  2)读取表格的文本内容需要用value();
  3)如果想要保留源文件的格式,打开部分的需要写成:
book_r = xlrd.open_workbook(filename, formatting_info=True)  4)sheet没有save,workbook才有save。
  一次性读写表格可以参看方法二(私链)。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-547796-1-1.html 上篇帖子: 003-Python流程控制 下篇帖子: 在 Ubuntu 中 安装python 开发环境( virtualenv 和 virtualenvwrapper)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表