python 读取excel中单元格的内容

excel文件内容:

读取excel代码:

# coding=utf-8
import xlrd
import sysreload(sys)
sys.setdefaultencoding('utf-8')
import tracebackclass 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, sheetnamedef read_excel(self, filename, sheetname):filename, sheetname = self.decode(filename, sheetname)rbook = xlrd.open_workbook(filename)sheet = rbook.sheet_by_name(sheetname)rows = sheet.nrowscols = sheet.ncolsall_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_contentif __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)printprint '[' + ','.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 sysreload(sys)
sys.setdefaultencoding('utf-8')
import traceback
from datetime import datetime
from xlrd import xldate_as_tupleclass 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, sheetnamedef read_excel(self, filename, sheetname):filename, sheetname = self.decode(filename, sheetname)rbook = xlrd.open_workbook(filename)sheet = rbook.sheet_by_name(sheetname)rows = sheet.nrowscols = sheet.ncolsall_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 Falserow_content.append(cell)all_content.append(row_content)print '[' + ','.join("'" + str(element) + "'" for element in row_content) + ']'return all_contentif __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']

更多操作excel可参考:http://www.2cto.com/kf/201501/373655.html

希望对你有帮助!

作者:夜雨西风              致敬

原文地址:http://www.2cto.com/kf/201501/373655.html

python 读取excel中单元格的内容相关推荐

  1. python 查找excel内容所在的单元格_python 读取excel中单元格的内容

    python 读取excel中单元格的内容 excel文件内容: 读取excel代码: # coding=utf-8 import xlrd import sys reload(sys) sys.se ...

  2. 计算机excel怎么添加实线边框,excel中单元格输入内容怎么设置自动加上实线边框...

    excel中单元格输入内容怎么设置自动加上实线边框 腾讯视频/爱奇艺/优酷/外卖 充值4折起 Excel是我们常用的办公软件之一,如果想要在单元格中输入内容时,单元格的边框自动加上实线边框,该怎么办呢 ...

  3. Python:根据excel中单元格的内容自动批量修改excel名称

    工作需求,需要根据excel表格中的内容来命名excel表格的名称,手动修改的话内容重复太多,太耗费时间了,最近也在学excel读取相关内容,因此就想到了用代码来自动化皮批量修改excel名称,既快捷 ...

  4. python读取excel文本单元格换行符_Excel自文本导入内容时如何做到单元格内换行...

    前言:今天在处理数据的时候,在数据库中用到了\n换行符号,目的是在同表格内做到数据多行显示,比如 字段名1 字段名2 字段名3 1 数据一行 数据二行 数据三行 例子是在sql查询后的结果 2 例子如 ...

  5. 使用Python提取Excel中单元格中的某一段内容(包含某特定字符且前后以逗号作为分隔符的内容)

    需求描述 提取红色方框的内容 思路 先找到乘号"x",将整个字符串分成ab两部分: 在a部分寻找最后一个逗号的位置,记录这个位置: 取a位于该位置右边的内容,记为s1: 在b部分寻 ...

  6. Python读取Excel中的数据

    1.用xlrd包读取excel数据 import xlrddef read_excel():# 打开文件,xlrd.open_workbook(),函数中参数为文件路径,分为相对路径和绝对路径work ...

  7. python查找excel中内容_python excel表格数据-python 如何读取 excel 指定单元格内容

    python 怎么从excel中读取数据 VLOOKUP是函数,给定一个查找的目标,它就能从指定的查找中查找返回想找到的值.它的基本语法为: VLOOKUP(查找目标,查找范围,返回值的列数,精确OR ...

  8. php如何读取excel合并单元格_PHP读取excel中合并的单元格的值

    RT 在做的一个东西,需要读取excel中个别列的内容,之前用的php excelreader,但是合并的单元格都是空的值,而且我的excel也不好判断只要是空的就用数组中上个的值这种方法,本身exc ...

  9. vb.net读取excel并写入dgv_如何用Python读取Excel中的图片?然后写入图片?

    大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进行分析. 那么你知道如何使用Python读 ...

最新文章

  1. 【转】Maven实战(七)---传递依赖
  2. 产品问答 | 感觉工作没有成长,该怎么办?
  3. 搭建基于spring MVC框架 + RESTful架构风格技术总结
  4. Linux umask限制导致php的mkdir 0777无效
  5. vue/cli3 配置vux
  6. ubuntu的MySQL远程数据库连接问题查找
  7. JAVA线程池_并发队列工作笔记0002---认识线程池_在线程池中使用队列
  8. CSS3 高斯模糊与动画效果
  9. 热点:安全问题是否能将DNS推入云服务
  10. 两幅图像幅度谱和相位谱替换
  11. 人脸识别最全知识图谱
  12. 实验matlab滤波器心得,数字信号处理,实验,Matlab实验FIR滤波器实现
  13. 如何连接新浪sae共享数据库
  14. 笔记本开机密码忘记了怎么解决,消除笔记本密码
  15. matlab学霸表白公式,学霸隐藏式表白数学公式
  16. Pycharm this applicatation failed to start because it could not find or laod the qt plaform plugin
  17. 解决方案产品化?如何执行
  18. 微信分享带图片,描述(php版)
  19. 子串子序列常见算法面试题
  20. shader学习摘要(八)unity光源类型

热门文章

  1. 计算8+88+888+…前10项之和编写应用程序,使用for循环语句计算8+88+888+…前10项之和。(java)
  2. matlab统计分析具体步骤,Matlab数据的统计分析与描述
  3. php建模,如何建模和跟踪PHP中的目标需求
  4. day11函数进阶作业
  5. UiPath官网认证培训
  6. XSS Challenges/刷题/Stage #4
  7. SQL Server 进阶 01 数据库的设计
  8. 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第四章 使用SCAPY掌控网络(2)Scapy实现ARP缓存投毒
  9. google search
  10. 开发人员不可不看的 OBD通讯协议知识