python 读取excel中单元格的内容
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中单元格的内容相关推荐
- python 查找excel内容所在的单元格_python 读取excel中单元格的内容
python 读取excel中单元格的内容 excel文件内容: 读取excel代码: # coding=utf-8 import xlrd import sys reload(sys) sys.se ...
- 计算机excel怎么添加实线边框,excel中单元格输入内容怎么设置自动加上实线边框...
excel中单元格输入内容怎么设置自动加上实线边框 腾讯视频/爱奇艺/优酷/外卖 充值4折起 Excel是我们常用的办公软件之一,如果想要在单元格中输入内容时,单元格的边框自动加上实线边框,该怎么办呢 ...
- Python:根据excel中单元格的内容自动批量修改excel名称
工作需求,需要根据excel表格中的内容来命名excel表格的名称,手动修改的话内容重复太多,太耗费时间了,最近也在学excel读取相关内容,因此就想到了用代码来自动化皮批量修改excel名称,既快捷 ...
- python读取excel文本单元格换行符_Excel自文本导入内容时如何做到单元格内换行...
前言:今天在处理数据的时候,在数据库中用到了\n换行符号,目的是在同表格内做到数据多行显示,比如 字段名1 字段名2 字段名3 1 数据一行 数据二行 数据三行 例子是在sql查询后的结果 2 例子如 ...
- 使用Python提取Excel中单元格中的某一段内容(包含某特定字符且前后以逗号作为分隔符的内容)
需求描述 提取红色方框的内容 思路 先找到乘号"x",将整个字符串分成ab两部分: 在a部分寻找最后一个逗号的位置,记录这个位置: 取a位于该位置右边的内容,记为s1: 在b部分寻 ...
- Python读取Excel中的数据
1.用xlrd包读取excel数据 import xlrddef read_excel():# 打开文件,xlrd.open_workbook(),函数中参数为文件路径,分为相对路径和绝对路径work ...
- python查找excel中内容_python excel表格数据-python 如何读取 excel 指定单元格内容
python 怎么从excel中读取数据 VLOOKUP是函数,给定一个查找的目标,它就能从指定的查找中查找返回想找到的值.它的基本语法为: VLOOKUP(查找目标,查找范围,返回值的列数,精确OR ...
- php如何读取excel合并单元格_PHP读取excel中合并的单元格的值
RT 在做的一个东西,需要读取excel中个别列的内容,之前用的php excelreader,但是合并的单元格都是空的值,而且我的excel也不好判断只要是空的就用数组中上个的值这种方法,本身exc ...
- vb.net读取excel并写入dgv_如何用Python读取Excel中的图片?然后写入图片?
大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进行分析. 那么你知道如何使用Python读 ...
最新文章
- 【转】Maven实战(七)---传递依赖
- 产品问答 | 感觉工作没有成长,该怎么办?
- 搭建基于spring MVC框架 + RESTful架构风格技术总结
- Linux umask限制导致php的mkdir 0777无效
- vue/cli3 配置vux
- ubuntu的MySQL远程数据库连接问题查找
- JAVA线程池_并发队列工作笔记0002---认识线程池_在线程池中使用队列
- CSS3 高斯模糊与动画效果
- 热点:安全问题是否能将DNS推入云服务
- 两幅图像幅度谱和相位谱替换
- 人脸识别最全知识图谱
- 实验matlab滤波器心得,数字信号处理,实验,Matlab实验FIR滤波器实现
- 如何连接新浪sae共享数据库
- 笔记本开机密码忘记了怎么解决,消除笔记本密码
- matlab学霸表白公式,学霸隐藏式表白数学公式
- Pycharm this applicatation failed to start because it could not find or laod the qt plaform plugin
- 解决方案产品化?如何执行
- 微信分享带图片,描述(php版)
- 子串子序列常见算法面试题
- shader学习摘要(八)unity光源类型
热门文章
- 计算8+88+888+…前10项之和编写应用程序,使用for循环语句计算8+88+888+…前10项之和。(java)
- matlab统计分析具体步骤,Matlab数据的统计分析与描述
- php建模,如何建模和跟踪PHP中的目标需求
- day11函数进阶作业
- UiPath官网认证培训
- XSS Challenges/刷题/Stage #4
- SQL Server 进阶 01 数据库的设计
- 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第四章 使用SCAPY掌控网络(2)Scapy实现ARP缓存投毒
- google search
- 开发人员不可不看的 OBD通讯协议知识