python 查找excel内容所在的单元格_python 读取excel中单元格的内容
python 读取excel中单元格的内容
excel文件内容:
读取excel代码:
# coding=utf-8
import xlrd
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import traceback
class excelHandle:
def decode(self, filename, sheetname):
try:
filename = filename.decode('utf-8')
sheetname = sheetname.decode('utf-8')
except Exception:
print traceback.print_exc()
return filename, sheetname
def read_excel(self, filename, sheetname):
filename, sheetname = self.decode(filename, sheetname)
rbook = xlrd.open_workbook(filename)
sheet = rbook.sheet_by_name(sheetname)
rows = sheet.nrows
cols = sheet.ncols
all_content = []
for i in range(rows):
row_content = []
for j in range(cols):
cell = sheet.cell_value(i, j)
row_content.append(cell)
all_content.append(row_content)
print '[' + ','.join("'" + str(element) + "'" for element in row_content) + ']'
return all_content
if __name__ == '__main__':
eh = excelHandle()
filename = r'G:\test\ctype.xls'
sheetname = 'Sheet1'
eh.read_excel(filename, sheetname)
输出 结果:
['整形','175.0']
['字符串','最后的骑士']
['浮点型','6.23']
['日期','42909.6461574']
['空值','']
['布尔型','1']
可以看到,数字一律按浮点型输出,日期却输出成一串小数?!布尔型输出0或1
代码稍做改动:来看一看表格的数据类型
for i in range(rows):
row_content = []
for j in range(cols):
ctype = sheet.cell(i, j).ctype #表格的数据类型
print ctype,
cell = sheet.cell_value(i, j)
row_content.append(cell)
all_content.append(row_content)
print '[' + ','.join("'" + str(element) + "'" for element in row_content) + ']'
输出:
2
['整形','175.0']
1
['字符串','最后的骑士']
2
['浮点型','6.23']
3
['日期','42909.6461574']
0
['空值','']
4
['布尔型','1']
python读取excel中单元格的内容返回的有5种类型,即上面例子中的ctype:
ctype: 0 empty,
1 string,
2 number,
3 date,
4 boolean,
5 error
所以,判断一下ctype,然后再做相应处理就可以了。
最终的代码:
# coding=utf-8
import xlrd
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import traceback
from datetime import datetime
from xlrd import xldate_as_tuple
class excelHandle:
def decode(self, filename, sheetname):
try:
filename = filename.decode('utf-8')
sheetname = sheetname.decode('utf-8')
except Exception:
print traceback.print_exc()
return filename, sheetname
def read_excel(self, filename, sheetname):
filename, sheetname = self.decode(filename, sheetname)
rbook = xlrd.open_workbook(filename)
sheet = rbook.sheet_by_name(sheetname)
rows = sheet.nrows
cols = sheet.ncols
all_content = []
for i in range(rows):
row_content = []
for j in range(cols):
ctype = sheet.cell(i, j).ctype # 表格的数据类型
cell = sheet.cell_value(i, j)
if ctype == 2 and cell % 1 == 0: # 如果是整形
cell = int(cell)
elif ctype == 3:
# 转成datetime对象
date = datetime(*xldate_as_tuple(cell, 0))
cell = date.strftime('%Y/%d/%m %H:%M:%S')
elif ctype == 4:
cell = True if cell == 1 else False
row_content.append(cell)
all_content.append(row_content)
print '[' + ','.join("'" + str(element) + "'" for element in row_content) + ']'
return all_content
if __name__ == '__main__':
eh = excelHandle()
filename = r'G:\test\ctype.xls'
sheetname = 'Sheet1'
eh.read_excel(filename, sheetname)
输出:
['整形','175']
['字符串','最后的骑士']
['浮点型','6.23']
['日期','2017/23/06 15:30:28']
['空值','']
['布尔型','True']
希望对你有帮助!
作者:夜雨西风 致敬
python 查找excel内容所在的单元格_python 读取excel中单元格的内容相关推荐
- python读取excel生成mysql建表语句_python读取excel文件并自动在mysql中建表导数据
""" 根据excel在mysql中建表(表名为文件名,字段为csv中的header,默认所有字段为varchar,如需更改,在数据库中更改即可),并插入数据 " ...
- python删除重复值所在的行数_python – 在last中删除具有重复值的行
我有一个制表符分隔文件,看起来像这样 chr1 12226559 12227059 TNFRSF1B chr1 17051560 17052060 chr1 17053279 17053779 chr ...
- python 打开excel并在屏幕上呈现_python读取excel数据,并可视化展现
#-*- coding: utf-8 -*- importpandas as pdaimportmatplotlib.pyplot as pylimportmatplotlib.font_manage ...
- python 获取csv的列数_Python读取excel的两种方法
excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...
- python导入数据画折线图_Python读取Excel表格,并同时画折线图和柱状图的方法
今日给大家分享一个Python读取Excel表格,同时采用表格中的数值画图柱状图和折线图,这里只需要几行代码便可以实. 首先我们需要安装一个Excel操作的库xlrd,这个很简单,在安装Python后 ...
- 用python读取excel数据、并作图_Python读取Excel表格,并同时画折线图和柱状图的方法...
今日给大家分享一个Python读取Excel表格,同时采用表格中的数值画图柱状图和折线图,这里只需要几行代码便可以实. 首先我们需要安装一个Excel操作的库xlrd,这个很简单,在安装Python后 ...
- 如何用python读取文本中指定行的内容
如何用python读取文本中指定行的内容 搜索资料 我来答 分享 新浪微博 QQ空间 浏览 5284 次 查看全文 http://www.taodudu.cc/news/show-64036.ht ...
- bufferedreader读取中文乱码_Python读取excel的两种方法
excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...
- python获取指定单元格内容_python读取excel表格指定位置的内容
今天是第一次写博客,对之前学以致用的内容做一些总结,以备日后忘了或者可以给别人提供一些帮助.话不多说,开始写内容. python读取excel表格指定位置的内容 需求:现在有一个excel表格,里面有 ...
最新文章
- VSS2005下载地址
- 老板问我桌面演练(TTX)是什么,我直接给他发了定义、示例和目标
- 40.公约数和公倍数
- 对比Java和.NET多线程编程
- Java的equals()和==的区别
- vscode 左侧图标_1分钟将vscode撸成小霸王
- python类方法和实例方法的区别_python中的类方法,实例方法和静态方法的区别
- 华为u2000 olt 添加成功,同步网元失败 提示 服务器不可达 解决办法
- vs 安装qtaddin_VS2015安装Qt5的Add-in的问题与解决方案【记录贴】
- solidity[4]-pure与view剖析
- 声呐直线阵正交混频实验(HEU信息与信号处理创新实践项目一)
- 丨EGFR FISH 探针解决方案
- Java并发的一些总结(面试须知)
- 年礼成快递企业不再接件主因:苹果产品最疯狂
- 【C语言】题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
- SQL的update语句
- day1—ECS阿里云云计算服务
- [转帖]LNMP组件安装
- C++-c语言词法分析器
- 陈欧体程序员版And各种版本