一、适用场景

在很多数据统计或者数据分析的场景中,我们都会使用到excel;

在一些系统中我们也会使用excel作为数据导入和导出的方式,那么如何使用python加以辅助我们快速进行excel数据做更多复杂和精确的处理,下面通过pyexcel_xls模块进行。

二、模块概述

pyexcel-xls 以 OrderedDict 结构处理数据,将整个excel文件转化为一个OrderedDict (有序字典)结构:

每个key就是一个子表(Sheet);

每个子表(Sheet),转化为一个列表结构:很像二维数组,第一层列表为行(Row),行的下标为列(Column),对应的值为单元格的值;

编码为 unicode,如果有中文必须进行转换。

三、读excel数据(xls,xlsx)

3.1 先创建一个excle文件,readfile.xls,里面有如下数据:

3.2 下面看如何读取这个文件:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
___Author___ = "Alfred Xue"
___Date_____ = "2017/11/8 上午10:08" # pyexcel_xls 以 OrderedDict 结构处理数据
from collections import OrderedDict
from pyexcel_xls import save_data
from pyexcel_xls import get_data def read_xls_file():
data = get_data(r"data/readfile.xls")
print("数据格式:" type(data))
for sheet_n in data.keys():
print(sheet_n, ":", data[sheet_n]) if __name__ == "__main__":
read_xls_file()

输出结构:

数据格式: <class 'collections.OrderedDict'>
Sheet1 : [['ID', '用户名', '密码', '角色'], ['', 'Alfred', 'adfaoiqjofj', '管理员'], ['', 'Jack', ';kndfiqoe', '用户'], [], [], [], [], [], [], [], []] Process finished with exit code 0

可以看到:

整个excel文件,转化为一个OrderedDict (有序字典)结构:每个key就是一个子表(Sheet)。

每个子表(Sheet),转化为一个列表结构:很像二维数组,第一层列表为行(Row),行的下标为列(Column),对应的值为单元格的值。

编码为 unicode 简单,易用,读出数据后,非常适合做二次处理!

■ 注意,excel文件名(就是那个xls或者xlsx文件),尽量不要用中文,如果您要使用中文,请转化为unicode编码,如:

data = get_data(unicode(r"D:\试试.xlsx", "utf-8"))

四、写excel数据(xls)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
___Author___ = "Alfred Xue"
___Date_____ = "2017/11/9 下午3:57" # pyexcel_xls 以 OrderedDict 结构处理数据
from collections import OrderedDict from pyexcel_xls import get_data
from pyexcel_xls import save_data # 写Excel数据, xls格式
def save_xls_file():
data = OrderedDict()
# sheet表的数据
sheet_1 = []
row_1_data = ["ID", "序号", "等级"] # 每一行的数据
row_2_data = [4, 5, 6]
# 逐条添加数据
sheet_1.append(row_1_data)
sheet_1.append(row_2_data)
# 添加sheet表
data.update({"Sheet1": sheet_1}) # 保存成xls文件
save_data("data/writefile.xls", data) if __name__ == '__main__':
save_xls_file()

生成excel文件效果:

Python 模块之 pyexcel_xls的更多相关文章

  1. 使用C/C++写Python模块

    最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...

  2. Python模块之configpraser

    Python模块之configpraser   一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...

  3. Python模块之"prettytable"

    Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...

  4. python 学习第五天,python模块

    一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...

  5. windows下安装python模块

    如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...

  6. 安装第三方Python模块,增加InfoPi的健壮性

    这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet    自动检测文本编码 2.lxml    用于解析 ...

  7. Python基础篇【第5篇】: Python模块基础(一)

    模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...

  8. python 模块加载

    python 模块加载 本文主要介绍python模块加载的过程. module的组成 所有的module都是由对象和对象之间的关系组成. type和object python中所有的东西都是对象,分为 ...

  9. pycharm安装python模块

    这个工具真的好好,真的很喜欢,它很方便,很漂亮,各种好 pycharm安装python模块:file-setting-搜索project inte OK

随机推荐

  1. c++的set_unexpected不起作用

    代码是从:http://www.cplusplus.com/referen ... /?kw=set_unexpected找的 // set_unexpected example #include & ...

  2. DMA—直接存储区访问

    本章参考资料:< STM32F4xx 中文参考手册> DMA 控制器章节.学习本章时,配合< STM32F4xx 中文参考手册> DMA 控制器章节一起阅读,效果会更佳,特别是 ...

  3. Sqlserver 批量数据更改

    insert into AAA select GETDATE(),name from BBB where aid=0 update a set a = b.a,b=b.b,c=b.c from t a ...

  4. 跟着百度学PHP[16]-验证码的学习

    一个验证码需要有以下步骤: 验证底图 验证码内容 生成验证码 对比校验 验证码需要依靠PHP的GD扩展库.一些集成环境是默认安装了GD拓展库. <?php //创建一个100*30px图片,默认 ...

  5. 二维码生成库phpqrcode使用小结

    <img src="data:image/png;base64,这里是base64编码内容" /> 只需要里边的phpqrcode.php这一个文件就可以生成二维码了 ...

  6. php 怎么查看是否开启了socket

    <?php if(extension_loaded('sockets')){ echo "已开启"; }else{ echo "未开启"; } ?>

  7. 我的第十个java程序--(其实是修改别人的web代码{springmvc+mybatis},知道了原理后其实一切都变的很简单)

    先是效果图,提高学习的兴趣 springmvc+mybatis+easyui 这几个东西让我一点一点的啃,刚开始的时候真的跑不起几个程序 1.下载tomcat 2.导入程序 3.项目报错,但不指出具体 ...

  8. 请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框。程序可以判断出用

    请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框.程序可以判断出用 户点击的是“确认”还是“取消”. 解答: <HTML> <HEAD> <TI ...

  9. 组件(Conponent)是图形用户界面最基本的部分

    组件(Conponent)是图形用户界面最基本的部分,也称为构件 ,是可以以图形化的方式显示在屏幕上,并能与用户进行交互的对象,例如一个按钮,一个标签等. 组件不能独立地显示出来,必须将其放在一定的容 ...

  10. iOS conformsToProtocol

    - (BOOL)conformsToProtocol:(Protocol *)aProtocol; 是用来检查对象(包括其祖先)是否实现了指定协议类的方法. 今天遇到一个问题,一个类没有实现proto ...