第一节:python读取excel文件
写在前面:
(1)Excel中数字格式int(1),读出的是float(1.0)类型,导致传参时造成不同,强制转换时,int(str(1.0))在2.7版本又会报错ValueError: invalid literal for int() with base 10: '1.0',经查阅资料后,发现数字类型在Excel中设置格式为
“文本”时会避免此问题发生;
(2)Excel中包含中文时,读出的是str类型,断言时,self.assertEqual(self.info['msg'], int(self.msg)),self.info['msg']为<type 'unicode'>,这就会导致断言失败。self.assertEqual(self.info['msg'], self.msg.decode("utf-8"))能够解决此问题;
本文中,读取Excel文件用的是xlrd库,检查库是否已安装(import xlrd),未报错则说明已安装成功,然后就可以开始练习啦!
在度娘里了解了xlrd库的用法后,先尝试着写了下面这些简单代码:
# -*- coding:utf-8 -*-
import xlrd
def read_excel(xls_name,sheet_name):
worksheet = xlrd.open_workbook(xls_name)
sheet = worksheet.sheet_by_name(sheet_name) for row in range(sheet.nrows):
for col in range(sheet.ncols):
#打印单元格内容
print sheet.cell(row,col) if __name__ == "__main__":
read_excel(r"F:\AONE\parameter.xlsx","第一周")
运行后,果然不负所望,运行报错,学习的路程是艰难的,顺风顺水是不存在的。错误如下:
xlrd.biffh.XLRDError: No sheet named <'\xe7\xac\xac\xe4\xb8\x80\xe5\x91\xa8'>
查看报错位置,带有中文字符“第一周”,然后这个sheet没有找到!OK,根据以往经验,又是编码问题了,乖乖的设置默认编码后,运行后,成功!!,完整代码如下:
# -*- coding:utf-8 -*-
import xlrd import sys
reload(sys)
sys.setdefaultencoding("utf-8") def read_excel(xls_name,sheet_name):
worksheet = xlrd.open_workbook(xls_name)
sheet = worksheet.sheet_by_name(sheet_name) for row in range(sheet.nrows):
for col in range(sheet.ncols):
print sheet.cell(row,col) if __name__ == "__main__":
read_excel(r"F:\AONE\parameter.xlsx","第一周")
上面代码运行后,的确是没有报错,但是呢,结果Excel文件里中文不显示,时间显示怪异,直接上图:

得!继续排雷!先解决时间显示异常的问题吧!然后呢!又问度娘!前辈是伟大的,果然有前辈留的武功秘籍,判断表格中的ctype,将包含时间的表格内容转换为tuple。按照思路,对我的时间格式进行了下整理。幸运的是,在解决时间异常的问题时,也解决了中文显示异常的问题!果然上帝还是眷顾爱学习的人啊!
完整代码:
# -*- coding:utf-8 -*-
import xlrd
import sys
reload(sys)
sys.setdefaultencoding("utf-8") def read_excel(xls_name,sheet_name):
worksheet = xlrd.open_workbook(xls_name)
sheet = worksheet.sheet_by_name(sheet_name) for row in range(sheet.nrows):
for col in range(sheet.ncols):
#获取单元格内容
value = sheet.cell(row,col).value
#如果表格中ctype为3,则将其转换为tuple
if sheet.cell(row,col).ctype == 3:
date = xlrd.xldate_as_tuple(sheet.cell(row,col).value,0)
value = str(date[3])+":"+str(date[4])
print value if __name__ == "__main__":
read_excel(r"F:\AONE\parameter.xlsx","第一周")
运行结果如下图:

至此,使用xlrd读取Excel文件并输出已完成!
第一节:python读取excel文件的更多相关文章
- 记录:python读取excel文件
由于最近老是用到python读取excel文件,所以特意记录一下python读取excel文件的大体框架. 库:xlrd(读),直接pip安装即可.想要写excel文件的话,安装xlwd库即可,也是直 ...
- python读取excel文件
一.xlrd的说明 xlrd是专门用来在python中读取excel文档的模块,使用前需要安装. 可以到这https://pypi.python.org/pypi/xlrd进行下载tar.gz文件,然 ...
- python 读取excel文件
方法一:利用pandas import pandas as pd inputfile_1 = "F:\\大论文实验\\福贡县数据\\贫困人口数据_2015.xlsx" data1 ...
- python读取excel文件中所有sheet表格
sales: store: """(1)用load_workbook函数打开excel文件,返回一个工作簿对象 (2)用工作簿对象获取所有的sheet (3)第一个for ...
- 接口测试框架——第二篇-python读取excel文件内容
今天完善excel_module.py文件,上代码: # coding: utf-8 import xlrd class ReadExcel(): def __init__(self, file_na ...
- python读取Excel文件。
#!/usr/bin/python # -*- coding: utf-8 -*- from bs4 import BeautifulSoup import urllib.request import ...
- python之路-随笔 python处理excel文件
小罗问我怎么从excel中读取数据,然后我百了一番,做下记录 以下代码来源于:http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html ...
- Python处理Excel文件
因为工作需求,需要审核一部分query内容是否有效,query储存在Excel中,文本内容为页面的Title,而页面的URL以HyperLink的格式关联到每个Cell. 于是本能的想到用Python ...
- 用python的pandas读取excel文件中的数据
一.读取Excel文件 使用pandas的read_excel()方法,可通过文件路径直接读取.注意到,在一个excel文件中有多个sheet,因此,对excel文件的读取实际上是读取指定文件.并 ...
随机推荐
- 【Matlab开发】matlab中bar绘图设置与各种距离度量
[Matlab开发]matlab中bar绘图设置与各种距离度量 标签(空格分隔): [Matlab开发] [机器学习] 声明:引用请注明出处http://blog.csdn.net/lg1259156 ...
- elasticsearch 的post put 方式的对比 setting mapping设置 - 添加查询数据
1.POST和PUT都可以用于创建 2.PUT是幂等方法,POST不是.所以post用户更新,put用于新增比较合适. 参考:https://yq.aliyun.com/articles/366099 ...
- 龙芯 飞腾 intel的 OpenBenchMarking数据
1. 今天从openbenchmarking 里面进行了简单的查找. 数据主要为: 机器配置: LS3A3000的数据为: 来源: https://openbenchmarking.org/resul ...
- PowerPoint储存此文件时发生错误 出现错误的问题解决方法
.单击“文件”,单击“选项”,然后单击“加载项”. . 在管理下拉框中选择“COM加载项”,单击“转到”按钮. . 检查是否存在有任何加载项,清除所有复选框来禁用它们. . 关闭PPT并重新启动,测试 ...
- windows 清理 cbs.log 文件
请参考以下步骤 1.win+r输入 services.msc进入服务,找到并双击Windows Modules Installer点击停止, 2.然后就可以手动删除 3.按一的步骤开启TrustedI ...
- Linux Shell中的变量声明和一些特殊变量
在SHELL中定义变量比较直接,无类型区别,不需要像Java那样定义好是String还是int等. 声明变量需要遵守或者注意的几点: 变量名和等号之间不能有空格. 变量名首字符必须为字母. 变量名里可 ...
- MVVM模式中ViewModel和View、Model有什么区别
Model:很简单,就是业务逻辑相关的数据对象,通常从数据库映射而来,我们可以说是与数据库对应的model. View:也很简单,就是展现出来的用户界面. 基本上,绝大多数软件所做的工作无非就是从数据 ...
- 洛谷P4779 【模板】单源最短路径
P4779 [模板]单源最短路径(标准版) 题目链接 https://www.luogu.org/problemnew/show/P4779 题目描述 给定一个 N个点,M条有向边的带非负权图,请你计 ...
- php商城秒杀活动
今天在网上看到一篇思路+代码的商城秒杀实例,我觉得非常不错,借鉴一下分享给大家: 一.前言 双十一刚过不久,大家都知道在天猫.京东.苏宁等等电商网站上有很多秒杀活动,例如在某一个时刻抢购一个原价199 ...
- 【AC自动机】单词
[题目链接] https://loj.ac/problem/10060 [题意] 某人读论文,一篇论文是由许多单词组成.但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次. ...