python读取excel(读写处理xls或xlsx)

前言

在很多应用场景中,程序都需要读取excel的配置。

比如,在游戏中,数值策划用excel 建好了数值表,我们要导入到游戏中。比如最简单的,等级-经验表。

注: 本文更新于2021.4.12, 基于python3,  以及扩展模块:pyexcel-xlsx

 

安装:

pip install pyexcel-xlsx

 

读Excel表,xlsx格式:

数据示例:

python 代码示例:

import json
from pyexcel_xlsx import get_data

data = get_data("d:/lv.xlsx")
print(type(data))     # 可以看到, 类型为collections.OrderedDict
print(json.dumps(data))

看一下输出, 是可以读出来的:

<class 'collections.OrderedDict'>
{"Sheet1": [["\u7b49\u7ea7", "\u5347\u7ea7\u9700\u8981\u7ecf\u9a8c"], [1, 40], [2, 90], [3, 140], [4, 210], [5, 280], [6, 360], [7, 450], [8, 540], [9, 650], [10, 760]], "Sheet2": [], "Sheet3": []}
 

 

--------- 以下是旧的, python2版本的文章 ---------

概述

这里我使用了 pyexcel-xls 这个东西。我个人觉得这个东西导出的数据结构,结构可读性很强,数据结构如下:

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

每个子表(Sheet),转化为一个二维数组:分别为行和列。

注意,本文对应的版本更新为 pyexcel-xls 0.2.3。

 

安装

pypi 的地址:

https://pypi.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 脚本,读这个文件:

 

#! /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)

根据上文,写也比较简单,不做过多解释。

#! /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文件:

 

 

 

好,数据读写完成!

 

 

  • 17
    点赞
  • 144
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
Excel是一种广泛使用的电子表格软件,可以用于读写和操作xlsExcel 97-2003格式)以及xlsxExcel 2007及更高版本格式)文件。 要在Excel读取和写入xlsxlsx文件,可以使用各种编程语言提供的Excel库或插件,如Python中的openpyxl、Java中的Apache POI、C#中的Microsoft.Office.Interop.Excel等。这些库可以帮助我们在代码中进行Excel文件的读写操作。 对于xls文件的读取,我们可以打开并读取其中的工作表、行和单元格,获取它们的值。我们可以使用特定的库函数来读取特定单元格的值,也可以遍历整个工作表来读取所有单元格的值。读取xls文件的方法与读取xlsx文件类似,只是需要使用特定的函数来处理不同的文件格式。 对于xls文件的写入,我们可以创建一个新的xls文件,并添加工作表、行和单元格,然后设置它们的值。我们可以使用特定的库函数来写入特定单元格的值,也可以逐个写入所有单元格的值。写入xlsx文件的方法也类似,只是需要使用特定的函数来处理不同的文件格式。 在操作xlsxlsx文件时,需要注意一些细节。例如,不同的Excel库对于特定操作的支持可能有所不同,一些库可能不支持读取或写入特定的功能或格式。此外,xlsxlsx文件的大小可能有所不同,导致读写操作的性能也不同,需要根据实际情况选择适当的方式和库函数。 总之,Excel读写和操作xls以及xlsx通用方法包括使用特定的Excel库或插件进行文件的读取和写入操作。根据不同的编程语言和需求,可以选择合适的库来实现这些功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值