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

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中单元格的内容相关推荐

  1. python读取excel生成mysql建表语句_python读取excel文件并自动在mysql中建表导数据

    """ 根据excel在mysql中建表(表名为文件名,字段为csv中的header,默认所有字段为varchar,如需更改,在数据库中更改即可),并插入数据 " ...

  2. python删除重复值所在的行数_python – 在last中删除具有重复值的行

    我有一个制表符分隔文件,看起来像这样 chr1 12226559 12227059 TNFRSF1B chr1 17051560 17052060 chr1 17053279 17053779 chr ...

  3. python 打开excel并在屏幕上呈现_python读取excel数据,并可视化展现

    #-*- coding: utf-8 -*- importpandas as pdaimportmatplotlib.pyplot as pylimportmatplotlib.font_manage ...

  4. python 获取csv的列数_Python读取excel的两种方法

    excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...

  5. python导入数据画折线图_Python读取Excel表格,并同时画折线图和柱状图的方法

    今日给大家分享一个Python读取Excel表格,同时采用表格中的数值画图柱状图和折线图,这里只需要几行代码便可以实. 首先我们需要安装一个Excel操作的库xlrd,这个很简单,在安装Python后 ...

  6. 用python读取excel数据、并作图_Python读取Excel表格,并同时画折线图和柱状图的方法...

    今日给大家分享一个Python读取Excel表格,同时采用表格中的数值画图柱状图和折线图,这里只需要几行代码便可以实. 首先我们需要安装一个Excel操作的库xlrd,这个很简单,在安装Python后 ...

  7. 如何用python读取文本中指定行的内容

    如何用python读取文本中指定行的内容 搜索资料 我来答 分享 新浪微博 QQ空间 浏览 5284 次 查看全文 http://www.taodudu.cc/news/show-64036.ht ...

  8. bufferedreader读取中文乱码_Python读取excel的两种方法

    excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...

  9. python获取指定单元格内容_python读取excel表格指定位置的内容

    今天是第一次写博客,对之前学以致用的内容做一些总结,以备日后忘了或者可以给别人提供一些帮助.话不多说,开始写内容. python读取excel表格指定位置的内容 需求:现在有一个excel表格,里面有 ...

最新文章

  1. VSS2005下载地址
  2. 老板问我桌面演练(TTX)是什么,我直接给他发了定义、示例和目标
  3. 40.公约数和公倍数
  4. 对比Java和.NET多线程编程
  5. Java的equals()和==的区别
  6. vscode 左侧图标_1分钟将vscode撸成小霸王
  7. python类方法和实例方法的区别_python中的类方法,实例方法和静态方法的区别
  8. 华为u2000 olt 添加成功,同步网元失败 提示 服务器不可达 解决办法
  9. vs 安装qtaddin_VS2015安装Qt5的Add-in的问题与解决方案【记录贴】
  10. solidity[4]-pure与view剖析
  11. 声呐直线阵正交混频实验(HEU信息与信号处理创新实践项目一)
  12. 丨EGFR FISH 探针解决方案
  13. Java并发的一些总结(面试须知)
  14. 年礼成快递企业不再接件主因:苹果产品最疯狂
  15. 【C语言】题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
  16. SQL的update语句
  17. day1—ECS阿里云云计算服务
  18. [转帖]LNMP组件安装
  19. C++-c语言词法分析器
  20. 陈欧体程序员版And各种版本

热门文章

  1. DataBinding 高级用法
  2. 2022系统分析师考试---选择题计算题型
  3. Struts1与Struts2对比分析
  4. 8月16最新青龙京东拉库《目前更新的库》
  5. 中国最大的传奇私服发布站和盛大的关系
  6. 中国饲料矿物质添加剂市场趋势报告、技术动态创新及市场预测
  7. 我在北京每月白捡一万元(转贴)
  8. 几种主流快速开发平台选择
  9. EEGLAB直接读入Curry8软件采集的数据信号
  10. ie的主页被修改了,改不过来怎么办??