xlwt缺点:

  1. 版本
    只能处理Excel97-2003或Excel 97之前版本的xls格式
  2. 存储数据过大
    存储数据过大时,会报错Exception: String longer than 32767 characters

OpenPyXL可以解决以上情况,OpenPyXL缺点:

  1. 读取xls格式时load_workbook函数utf-8报错

下载:链接http://pan.baidu.com/s/1dFF8jVN 密码qkpp
安装:命令行进入setup.py目录下,运行以下命令python setup.py install

  • 操作文件与表
  • 操作数据
  • 保存
  • 异常错误
  • 常用方法

操作文件与表

import openpyxl
# 操作excel
wb = openpyxl.Workbook() #创建excel
wb2 = openpyxl.load_workbook(path) #打开现有的excel
# 创建表
ws = wb.active #正在运行的工作表
ws1 = wb.create_sheet() #末尾插入表
ws2 = wb.create_sheet(0) #插在第一个位置
ws3 = wb["New Title"] #根据名称获得表
ws4 = wb.get_sheet_by_name("New Title") #根据名称获取表
print wb.get_sheet_names() #得到所有工作表
# 为表命名
ws.title = "New Title" #创建时系统自定命名
#循坏所有的工作表
for sheet in wb:print sheet.title

操作数据

一个工作表被创建时,其中不包含单元格,只有当单元格被获取时才被创建
openpyxl里第一行第一列索引为1,1(即从1开始,不是从0开始)

                # 行列数
len(ws.rows) #行数
len(ws.columns) #列数# 读
c = ws['A4']
c = ws.cell('A4')
c = ws.cell(row = 4, column = 2)
cell_range = ws['A1':'C2'] #使用切片获取多个单元格
#获取多个单元格并遍历
for row in ws.iter_rows('A1:C2'):for cell in row:print cell
#迭代文件中所有的行
for row in ws.rows: #取一行for cell in row: #一行中一个一个取print cell
#得带文件中所有的列
ws.colums# 写
ws['A4'] = 4
# 有openpyxl.cell.Cell,可以直接为该单元赋值
c.value = 'Hello,world'
c.value = '15%' #其他类型
c.value = datetime.datetime.now()

保存

# 覆盖掉原文件
wb.save(path)
# True时文件保存为模板
wb = load_workbook('doc.xlsx')
wb.save('doc_template.xltx',as_template=True)
# False时文件或模板保存为文件
wb = load_workbook('doc.xltx')
wb = load_workbook('doc_template.xltx') #或者
wb.save('doc.xlsx',as_template.False)

异常错误

以上是网上用法集合,以下是博主遇到的一些问题,及解决方法

  1. 获取行数len(sheet1.rows),报错TypeError: object of type 'generator' has no len()

    #获取行数
    rows = tuple(sheet1.rows)
    len(rows)
    
  2. 文件路径有中文,报错IOError: [Errno 2] No such file or directory: '\xe9\x81\x93\xe8\xb7\xaf_POI.xlsx',读取错误

    #解决方案,中文部分在外面用u编码,使用%s传进路径,成功
    TYPE = u'道路' #中文部分使用u编码
    EXCEL_PATH = r'G:\workspace\python\arcpy\citywalker\%s_POI.xlsx'% TYPE #使用%s代替中文形成路径
    

常用方法

以下是博主用到的方法:

  1. 获取第一个sheet

    excel = openpyxl.load_workbook(path)
    sheetnames = excel.get_sheet_names()
    name = sheetnames[0]
    sheet1 = excel.get_sheet_by_name(name)
    
  2. 获得行数

    rows = tuple(sheet1.rows)
    len(rows)
    
  3. 获取第一列或列

    # 获取第一列
    for row in sheet1.rows:print row[0].value
    # 获取第一行
    for col in sheet1.columns:print col[0].value
    # 获取第一行,法二
    ncols = len( tuple(table.columns) )
    for i in range(0, ncols):print table.cell(row = 1,column = i+1).value
    

[Python] openpyxl读存大数据 Exception: String longer than 32767 characters相关推荐

  1. python的xlwt库写入报错Exception: String longer than 32767 characters

    使用python的xlwt库写入xls的时候,报错 Exception: String longer than 32767 characters 解决办法: 使用xlsxwriter库, 这个库是将数 ...

  2. python String longer than 32767 characters

    python String longer than 32767 characters xlwt缺点: 只能处理Excel97-2003或Excel 97之前版本的xls格式 存储数据过大时,会报错Ex ...

  3. 一文读懂大数据平台——写给大数据开发初学者的话!

     一文读懂大数据平台--写给大数据开发初学者的话! 文|miao君 导读: 第一章:初识Hadoop 第二章:更高效的WordCount 第三章:把别处的数据搞到Hadoop上 第四章:把Hado ...

  4. 读决战大数据-车品觉

    读决战大数据-车品觉 一前言 (1)'大数据'的意义就在连结,数据公告层就是跨业务群的精华,让所有人能把其他人的数据冗余利用起来,这时'大数据'才算做了起来. (2)整合和配合,数据团队要学会取舍. ...

  5. 《Python和HDF 5大数据应用》——2.4 你的第一个HDF5文件

    本节书摘来自异步社区<Python和HDF 5大数据应用>一书中的第2章,第2.4节,作者[美]Andrew Collette(科莱特),胡世杰 译,更多章节内容可以访问云栖社区" ...

  6. 【图解】九张图带你读懂大数据医疗

    文章讲的是[图解]九张图带你读懂大数据医疗,互联网大框架的结构下,互联网+医疗的个性化服务,能给医疗保健工作者和消费者带来哪些真正的福利呢,首先可以提高效益减少废物.增强了预防传染病的能力.对于个人公 ...

  7. 《一本书读懂大数据营销 玩透大数据营销 创造网络营销奇迹》pdf下载 百度云

    <一本书读懂大数据营销  玩透大数据营销  创造网络营销奇迹>pdf下载请到文末! 在使用低对比度光源的摄影作品中,辣椒的阴影不再是清晰可见的,阴影的线条也不再"生硬" ...

  8. 一本书读懂大数据(每个人都看得懂的大数据入门书) - 电子书下载(高清版PDF格式+EPUB格式)...

    一本书读懂大数据(每个人都看得懂的大数据入门书)-黄颖 在线阅读                   百度网盘下载(635f) 书名:一本书读懂大数据(每个人都看得懂的大数据入门书) 作者:黄颖 格式 ...

  9. 读《大数据之路-阿里巴巴大数据实践》数据模型篇笔记

    读<大数据之路-阿里巴巴大数据实践>数据模型篇 七 建模综述 OLTP 面向数据 随机读写 3NF OLAP 批量读写 不关注一致性更关心数据整合 ER模型–衍生出dataVault 维度 ...

最新文章

  1. python中自带的三个装饰器_python三个自带装饰器的功能与使用(@property、@staticmethod、@classmethod)...
  2. border-radius圆角兼容方案
  3. 《深入浅出数据分析》第十二章——R语言lattice数据包
  4. VC 2010下安装OpenCV2.4.4
  5. leetcode 303. 区域和检索 - 数组不可变
  6. 洛谷 P1377 [TJOI2011]树的序 解题报告
  7. 怎样发布一个工程到自己的GitHub
  8. gis 空间分析 鸟类栖息地选取_GIS空间分析专题一:鸟儿栖息地查找
  9. 【渝粤教育】电大中专建筑施工技术 (2)作业 题库
  10. vlan理论03-vlan映射
  11. 提示wininet.dll文件找不到的解决
  12. AWVS12-Windows
  13. 如何入门单片机C语言
  14. PS精讲精练读书笔记
  15. Mac Yapi 内网安装保姆级步骤
  16. Eplan如何添加“连接定义点”
  17. matla图像处理基本操作
  18. java 导入导出excel表格
  19. Unreal Engine 4 渲染目标(Render Target)教程 之 可交互的草地(上)
  20. mathmatic engineer

热门文章

  1. 模拟法庭教学实训软件QY-RJ11
  2. android布局高度大于屏幕高度,Android CoordinatorLayout + AppbarLayout + Viewpager布局超过屏幕高度...
  3. C++操作word:插入文字、图片、表格,设置样式字体
  4. 字节终面只问了1个框架问题,我被录取了!
  5. 魔兽世界服务器存档位置,选择服务器也有大学问?新手入坑《魔兽世界》该在哪里“扎根”...
  6. 如何从Facebook组中删除帖子
  7. 防止matplotlib画完图后自动关闭NN
  8. 【华为ensp实战案例——路由网络的构建与配置】
  9. Exception in thread main java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Wi
  10. 网页设计作业`京东网站设计——仿2016版京东首页(1页) HTML+CSS+JavaScript 大学生网页作品 电商网页设计作业模板 学生网页制作源代码下载