python读取excel(Python处理xls)
2017-07-27 18:53
1266 查看
前言
在很多应用场景中,程序都需要读取excel的配置。
比如,在游戏中,数值策划用excel 建好了数值表,我们要导入到游戏中。
概述
这里我使用了 pyexcel-xls 这个东西。我个人觉得这个东西导出的数据结构,结构可读性很强,数据结构如下:
整个excel文件,转化为一个字典结构:每个key就是一个子表(Sheet)
每个子表(Sheet),转化为一个二维数组:分别为行和列。
注意,本文对应的版本更新为 pyexcel-xls 0.2.3。
安装
pypi 的地址:
https://pypi. href="http://lib.csdn.net/base/python" target=_blank>Python.org/pypi/pyexcel-xls/
■ 方法一:
可以直接用pip安装
■ 方法二:
下载安装包手动安装。
先安装两个依赖包:
xlrd 和 pyexcel-io
然后再安装 pyexcel-xls
使用
一、读excel数据 (xls, xlsx)
1,先建立一个目标excel表,这里为了做演示,简单建立一个 read_test.xlsx 文件:
里面的数据(3行,4列):
2,写python 脚本,读这个文件:
[python]
view plain
copy
#! /usr/bin/env python
#coding=utf-8
# pyexcel_xls 以 OrderedDict 结构处理数据
from collections import OrderedDict
from pyexcel_xls import get_data
from pyexcel_xls import save_data
def read_xls_file():
xls_data = get_data(r"D:\read_test.xlsx")
print "Get data type:", type(xls_data)
for sheet_n in xls_data.keys():
print sheet_n, ":", xls_data[sheet_n]
if __name__ == '__main__':
read_xls_file()
看一下输出的打印信息:
可以看到:
整个excel文件,转化为一个OrderedDict (有序字典)结构:每个key就是一个子表(Sheet)。
每个子表(Sheet),转化为一个列表结构:很像二维数组,第一层列表为行(Row),行的下标为列(Column),对应的值为单元格的值。编码为 unicode
简单,易用,读出数据后,非常适合做二次处理!
■ 注意,excel文件名(就是那个xls或者xlsx文件),尽量不要用中文,如果您要使用中文,请转化为unicode编码,如:
xls_data = get_data(unicode(r"D:\试试.xlsx", "utf-8"))
二、写excel数据 (xls)
根据上文,写也比较简单,不做过多解释。
[python]
view plain
copy
#! /usr/bin/env python
#coding=utf-8
# pyexcel_xls 以 OrderedDict 结构处理数据
from collections import OrderedDict
from pyexcel_xls import get_data
from pyexcel_xls import save_data
def read_xls_file():
xls_data = get_data(unicode(r"D:\试试.xlsx", "utf-8"))
print "Get data type:", type(xls_data)
for sheet_n in xls_data.keys():
print sheet_n, ":", xls_data[sheet_n]
return xls_data
# 写Excel数据, xls格式
def save_xls_file():
data = OrderedDict()
# sheet表的数据
sheet_1 = []
row_1_data = [u"ID", u"昵称", u"等级"] # 每一行的数据
row_2_data = [4, 5, 6]
# 逐条添加数据
sheet_1.append(row_1_data)
sheet_1.append(row_2_data)
# 添加sheet表
data.update({u"这是XX表": sheet_1})
# 保存成xls文件
save_data("D:\write_test.xls", data)
if __name__ == '__main__':
save_xls_file()
看一下写出的xls文件:
好,数据读写完成!
在很多应用场景中,程序都需要读取excel的配置。
比如,在游戏中,数值策划用excel 建好了数值表,我们要导入到游戏中。
概述
这里我使用了 pyexcel-xls 这个东西。我个人觉得这个东西导出的数据结构,结构可读性很强,数据结构如下:
整个excel文件,转化为一个字典结构:每个key就是一个子表(Sheet)
每个子表(Sheet),转化为一个二维数组:分别为行和列。
注意,本文对应的版本更新为 pyexcel-xls 0.2.3。
安装
pypi 的地址:
https://pypi. href="http://lib.csdn.net/base/python" target=_blank>Python.org/pypi/pyexcel-xls/
■ 方法一:
可以直接用pip安装
pip install pyexcel-xls
■ 方法二:
下载安装包手动安装。
先安装两个依赖包:
xlrd 和 pyexcel-io
然后再安装 pyexcel-xls
使用
一、读excel数据 (xls, xlsx)
1,先建立一个目标excel表,这里为了做演示,简单建立一个 read_test.xlsx 文件:
里面的数据(3行,4列):
2,写python 脚本,读这个文件:
[python]
view plain
copy
#! /usr/bin/env python
#coding=utf-8
# pyexcel_xls 以 OrderedDict 结构处理数据
from collections import OrderedDict
from pyexcel_xls import get_data
from pyexcel_xls import save_data
def read_xls_file():
xls_data = get_data(r"D:\read_test.xlsx")
print "Get data type:", type(xls_data)
for sheet_n in xls_data.keys():
print sheet_n, ":", xls_data[sheet_n]
if __name__ == '__main__':
read_xls_file()
看一下输出的打印信息:
可以看到:
整个excel文件,转化为一个OrderedDict (有序字典)结构:每个key就是一个子表(Sheet)。
每个子表(Sheet),转化为一个列表结构:很像二维数组,第一层列表为行(Row),行的下标为列(Column),对应的值为单元格的值。编码为 unicode
简单,易用,读出数据后,非常适合做二次处理!
■ 注意,excel文件名(就是那个xls或者xlsx文件),尽量不要用中文,如果您要使用中文,请转化为unicode编码,如:
xls_data = get_data(unicode(r"D:\试试.xlsx", "utf-8"))
二、写excel数据 (xls)
根据上文,写也比较简单,不做过多解释。
[python]
view plain
copy
#! /usr/bin/env python
#coding=utf-8
# pyexcel_xls 以 OrderedDict 结构处理数据
from collections import OrderedDict
from pyexcel_xls import get_data
from pyexcel_xls import save_data
def read_xls_file():
xls_data = get_data(unicode(r"D:\试试.xlsx", "utf-8"))
print "Get data type:", type(xls_data)
for sheet_n in xls_data.keys():
print sheet_n, ":", xls_data[sheet_n]
return xls_data
# 写Excel数据, xls格式
def save_xls_file():
data = OrderedDict()
# sheet表的数据
sheet_1 = []
row_1_data = [u"ID", u"昵称", u"等级"] # 每一行的数据
row_2_data = [4, 5, 6]
# 逐条添加数据
sheet_1.append(row_1_data)
sheet_1.append(row_2_data)
# 添加sheet表
data.update({u"这是XX表": sheet_1})
# 保存成xls文件
save_data("D:\write_test.xls", data)
if __name__ == '__main__':
save_xls_file()
看一下写出的xls文件:
好,数据读写完成!
相关文章推荐
- 用python处理Excel文档(1)——用xlrd模块读取xls/xlsx文档
- python读取excel(Python处理xls)
- $用python处理Excel文档(2)——用xlsxwriter模块写xls/xlsx文档
- python 处理Excel 常见问题-读取Excel中时间
- 用Python读取Excel(*.xls)文件——xlrd模块的使用
- Python 读取EXCEL(XLS、CSV)写入txt文件
- mac环境下,Python读取excel数据,并对行列做输出处理
- Python读取txt内容写入xls格式的excel中
- python 视频处理,提取视频相关帧,读取Excel
- Python处理Excel 写入,读取和追加
- python 读取excel内容为中文的处理
- Python读取txt内容写入xls格式excel中的方法
- Python处理Excel(五):读取Excel中的Int型数
- $ 用python处理Excel文档(1)——用xlrd模块读取xls/xlsx文档
- python 视频处理,提取视频相关帧,读取Excel
- python初学者学习笔记(三)读取excel表格数据
- python处理excel
- python中写入csv,excel显示、pandas读取csv文件的编码问题
- org.apache.poi 读取 excel xls xlsx
- python——处理xls表格