Python之pyexcel_xls读写Excel数据表

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

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

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

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

二、读excel数据(xls,xlsx)

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


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', '用户名', '密码', '角色'], ['00001', 'Alfred', 'adfaoiqjofj', '管理员'], ['00002', '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文件效果:

 

原文出处:https://www.cnblogs.com/alfred0311/p/7809863.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值