继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Python 读写 Excel 文件

青春有我
关注TA
已关注
手记 1241
粉丝 205
获赞 1008

最近需要用到Python来操作excel表,读取表格内容到数据库。所以就搜索了相关资料。
查找了一下,可以操作excel表的几个库有以下几个:

  • openpyxl
    这个是推荐使用的库,可以读写Excel 2010以上格式,以.xlsx结尾的文件。

  • xlsxwriter
    这个支持.xlsx,但是只支持写入,格式化等操作,不支持读取。

  • xlrd
    这个支持读取数据,支持以xls结尾的文件,也就是比较老的格式。

  • xlwt
    这个和上面的相对应,支持写入书和格式化数据,支持xls结尾的文件格式。

  • xlutils
    这个是整合了xlrd和xlwt两个库的功能。

经过对比我还是选择了openpyxl这个库,下面针对这个库的使用进行说明


  • 创建一个工作簿

from openpyxl import Workbook
wb = Workbook()
ws = wb.active             #默认创建第一个表,默认名字为sheetws1 = wb.create_sheet()    #创建第二个表ws1.title = "New Title"    #为第二个表设置名字ws2 = wb.get_sheet_by_name(
New Title")                #通过名字获取表,和第二个表示一个表
ws1.save('your_name.xlsx') #保存
  • 读取一个工作簿中的内容

 from openpyxl import load_workbook
 wb = load_workbook('myname.xlsx')  #加载一个工作簿
 print wb.get_sheet_names()         #获取各个sheet的名字
  • 简单的用法

from openpyxl import Workbookfrom openpyxl.compat import rangefrom openpyxl.cell import get_column_letter
wb = Workbook()
dest_filename = 'empty_book.xlsx'ws1 = wb.active              #第一个表ws1.title = "range names"    #第一个表命名#遍历第一个表的1到39行,每行赋值从1到599.for row in range(1,40):
    ws1.append(range(600))
ws2 = wb.create_sheet(title="Pi") # 创建第二个表ws2['F5'] = 3.14     #为第二个表的F5单元格赋值为3.14ws3 = wb.create_sheet(title="Data")  #创建第三个表
 /* 下面遍历第三个表的10到19行,27到53列,并对每一行的单元格赋一个当前列名的名字如下图 */for row in range(10,20):    for col in range(27,54):
        _=ws3.cell(column=col,row=row,value="%s" % get_column_letter(col)) #_当作一个普通的变量,一般表示后边不再使用wb.save(filename=dest_filename) #保存

图片描述

图片描述



作者:李英杰同学
链接:https://www.jianshu.com/p/71f593c13e8c


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP