前言

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

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

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

安装:

pip install pyexcel-xlsx

读Excel表,xlsx格式:

数据示例:

python 代码示例:

import json
from pyexcel_xlsx import get_datadata = 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

■ 方法二:

下载安装包手动安装。

先安装两个依赖包:

xlrdpyexcel-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 OrderedDictfrom pyexcel_xls import get_data
from pyexcel_xls import save_datadef 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 OrderedDictfrom pyexcel_xls import get_data
from pyexcel_xls import save_datadef 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(读写处理xls或xlsx)相关推荐

  1. Android 读取excel (支持 xls和xlsx)

    最近公司项目需要Android应用读取excel文件内容,所以就找了相关资料,找到两种读取excel文件的方法,下面为大家介绍: 一.jxl 读取excel文件 1.1.添加依赖: implement ...

  2. python将excel文件格式从xls转换为xlsx(调用win32com库)

    python调用win32库将xls文件格式转换为xlsx import win32com.client as win32fname = r'C:\Users\90687\Desktop\test\t ...

  3. Python将excel文件从xls转换为xlsx

    本文使用场景:将一个xls格式Excel文件转换为xlsx文件格式.接下来将一步一步演示该操作.你也可以对代码进行修改使其适用于你所需的场景. 安装Python3 首先需要安装Python,我这里安装 ...

  4. python 读取Excel文件(包括后缀为.xls与.xlsx)

    1.python 读取Excel文件(.xls文件) 导入的为xlrd 读取该sheet表中的值 import xlrd# 读取表格 def read_excel(book_data,sheet_da ...

  5. Python读取excel文件可读取xlsx格式和xls格式可直接读取超链接,读出为字典格式(列表套字典),处理合并单元格的问题

    直接上代码:(代码有注释,代码下方有解释) 1.可读取excel中的xlsx格式文件 2.可读取excel中的xls格式文件 3.可直接读取网页上的excel的超链接 4.解决有列合并的情况以及行合并 ...

  6. python读取excel表格-python读写Excel表格的实例代码(简单实用)

    安装两个库:pip install xlrd.pip install xlwt 1.python读excel--xlrd 2.python写excel--xlwt 1.读excel数据,包括日期等数据 ...

  7. python 读取excel格式xml,读取xml格式的xls文件、解析其中数据

    1.python 读取excel格式xml,解析其中数据 当excel文件的格式是xml的时候,window系统是可以正常打开的,但是使用pandas直接读取则会报错,原因就是现在已经是xml文件了, ...

  8. c#读取生成excel表格文件xls、xlsx格式文件

    全栈工程师开发手册 (作者:栾鹏) c#教程全解 c#存储生成excel表格格式xls.xlsx格式的文件 需要电脑安装对应版本的office,并且在项目中引用excel 测试代码 static vo ...

  9. python读取excelsheet-一文看懂用Python读取Excel数据

    原标题:一文看懂用Python读取Excel数据 导读:现有的Excel分为两种格式:xls(Excel 97-2003)和xlsx(Excel 2007及以上). Python处理Excel文件主要 ...

  10. python读取excel表格-python读取excel表格中的数据

    使用python语言实现Excel 表格中的数据读取,需要用到xlrd.py模块,实现程序如下: import xlrd #导入xlrd模块 class ExcelData(): def __init ...

最新文章

  1. 网络负载均衡相关技术-DNS
  2. 在一个大项目中,我选择了另一种JDK实现AdoptOpenJDK
  3. 网络营销外包中那些超有效的网络营销方法有进一步了解过吗?
  4. 算法提高 c++_ch02_01 (强制类型转换)
  5. 极光IM初始化SDK出错
  6. 使用ftp搭建yum源问题解决
  7. oracle 判断是否位汉字,js判断字符是否是汉字的两种方法小结
  8. python登录系统文件版_详解用python实现基本的学生管理系统(文件存储版)(python3)...
  9. ASP进阶教程Ⅷ:数据库版本的留言簿
  10. setint 的用法
  11. html兼容手机浏览器
  12. Springboot实现阿里云通信短信服务有关短信验证码的发送
  13. 乐队设备--反馈抑制器学习笔记
  14. 进阶级 - Git Hub 常用指南
  15. 复制神器Ditto使用方法详细说明
  16. 带你了解磁盘驱动程序(xv6)
  17. Revit建模中快速局部平面操作,一键搞定!
  18. 转 Fedora各个历史版本官方下载地址
  19. 我的时间都去哪里了?
  20. 2021年平均工资公布 这些行业不如意

热门文章

  1. 卷积学习与传统稀疏编码、ICA模型学习区别(逐步补充)
  2. CFile、CStdioFile、FILE和其他文件操作
  3. Bootstrap 组件 Button 按钮
  4. 赋值表达式与赋值语句
  5. H.266/VVC相关技术学习笔记21:帧间预测中五种Merge模式的熵编码方式
  6. 简历中使用STAR法则
  7. 蓝牙BLE设备连接与通信
  8. git 录制简单实用好工具 LICEcap
  9. Android 检测输入键盘是否弹起
  10. STL 源码分析之string(一)基础篇