网站首页 > 编程文章 正文
前言
数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件。因此用Python 进行数据相关的工作时,难免要和 Excel 打交道。
标准的 Excel 文件(xls/xlsx)具有较复杂的格式,并不方便像普通文本文件一样直接进行读写,需要借助第三方库来实现。
常用的库是 python-excel 系列:
xlrd、xlwt、xlutils
- xlrd - 读取 Excel 文件
- xlwt - 写入 Excel 文件
- xlutils - 操作 Excel 文件的实用工具,如复制、分割、筛选等
库的安装
它们有个缺陷,就是只能处理 xls 文件。如果你想用新版本的 xlsx,可以考虑 openpyxl 和 xlsxwriter。
如果你只是装了Python的话,你需要分别安装xlrd、xlwt、xlutils,安装方式看个人情况,为了方便,建议安装pip包,这样安装很简单,直接pip install 包名。如果你安装了集成环境,比如anaconda,我已安装,已经有了 xlrd 和 xlwt,所以我只需要再安装xlutils即可。
分析Excel文件的层级对象
要读取excel的数据,就要了解excel的结构,根据excel的结构一层一层的去读取数据。
excel有三层级对象,workbook,sheet,和cell。一个excel文件就是一个workbook,所以在最初我们必须要打开这个excel文件,也就是workbook。sheet我们都很熟悉,就是表,我们都知道一个excel文件有时候会有很多的表,所以我们必须要选择是读取哪个表的数据,最后才是cell,cell其实就是格子,excel的表格就是一个二维数组,cell就是这个表格中的最小单元,也就是我们读取数据存储的地方。
xlrd库的使用
更多内容,参考链接:
http://xlrd.readthedocs.io/en/latest/
http://xlrd.readthedocs.io/en/latest/api.html
首先读取ad.xlsx表中的数据。先看一下代码:
#-*- coding:utf-8 -*-import xlrd #打开xlsx文件ad_wb = xlrd.open_workbook("ad.xlsx")#获取第一张表的名称row_data = ad_wb.sheets()[0]print ("表单数量:", ad_wb.nsheets)print ("表单名称:", ad_wb.sheet_names()) #获取第一个目标表单sheet_0 = ad_wb.sheet_by_index(0)print (u"表单 %s 共 %d 行 %d 列" % (sheet_0.name, sheet_0.nrows, sheet_0.ncols))print ("第三行第三列:", sheet_0.cell_value(2, 2)) #直接输出日期date_value = xlrd.xldate_as_tuple(sheet_0.cell_value(2,2),ad_wb.datemode)date1 = xlrd.xldate.xldate_as_datetime(sheet_0.cell_value(2, 2), ad_wb.datemode)print (date_value)#元组print (date1)#日期 # 遍历所有表单,由于数据量大 ,这里只取前10条for s in ad_wb.sheets(): for r in range(0, 10): # 输出指定行 print (s.row(r))
可以看到,上面的日期,已经被转换成了Excel的日期,这里是以数字类型展示的。
因为这里 xldate 有自己的格式定义。如果要使用正确的格式,必须转换:
new_date= xlrd.xldate.xldate_as_datetime(date, book.datemode)
date 是对应单元格的数据,book 是打开的文件对象。
可以看到我重新输出了日期结果(具体见代码)。
另外,在打开文件时,加上参数 formatting_info=True,可以保证在时间数据在 copy 时保持原样。
写入时间数据,则可通过此方法创建 excel 的时间对象:
xlrd.xldate.xldate_from_datetime_tuple
或者通过 xlwt.easyxf 指定时间格式:
style = xlwt.easyxf(num_format_str='D-MMM-YY') ws.write(1, 0, datetime.now(), style)
xlrd常用的方法:
· open_workbook 打开文件
· sheet_by_index 获取某一个表单
· sheets 获取所有表单
· cell_value 获取指定单元格的数据
xlwt库的使用
先看一个示例代码:
#-*-coding:utf-8 -*-import xlwt #创建xls文件对象wb = xlwt.Workbook()#新建表单sh = wb.add_sheet('A new sheet')#按位置添加数据,前面两个参数是位置,后面一个是单元格内容sh.write(0, 0, 'hello')sh.write(1, 0, 'world')sh.write(2, 0, 1234567)sh.write(2, 1, '2017-04-10')#保存文件wb.save('xlwt_test.xls')
生成的文件如下所示:
xlwt常用的方法:
· Workbook 创建文件对象
· add_sheet 新增一个表单
· write 在指定单元格写入数据
小结
上面就是今天的主题内容了,今天分享下如何使用Python操作Excel进行读写文件,这对于经常处理相同格式的表格有很大帮助。
欢迎关注公众号,访问更多精彩:数据之魅。
猜你喜欢
- 2024-11-05 Excel表格技巧—Matlab如何读取Excel里的数据
- 2024-11-05 Python对excel的读写汇总(python如何读写excel)
- 2024-11-05 python读取excel文件 xlrd模块(python读取excel文件代码)
- 2024-11-05 如何使用Python编程读取Excel工作簿、工作表信息?一文就够了
- 2024-11-05 python处理excel文件03:xlwt模块写入excel文件
- 2024-11-05 使用Python将文本数据导入Excel文件:基于xlwt库的实践
- 2024-11-05 python处理excel文件04:xlwt模块带样式写入excel文件
- 2024-11-05 在Vue项目中使用xlsx模块读写Excel文档内容
- 2024-11-05 Python,xlsxwriter写入excel,代码示例
- 2024-11-05 Qt读写excel(QT读写xml)
你 发表评论:
欢迎- 06-24一个老爸画了超级有爱的365幅画 | 父亲节献礼
- 06-24产品小白看魏则西事件——用产品思维审视百度推广
- 06-24某教程学习笔记(一):13、脚本木马原理
- 06-24十大常见web漏洞——命令执行漏洞
- 06-24初涉内网,提权那些事(内网渗透提权)
- 06-24黑客命令第16集:47种最常见的**网站方法2/2
- 06-24铭说 | 一句话木马的多种变形方式
- 06-24Java隐藏的10倍效率技巧!90%程序员不知道的魔法方法(附代码)
- 最近发表
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)