本文主要介绍xlrd模块读取Excel文档的基本用法,并以一个GDP数据的文档为例来进行操作。

1. 准备工作:

1. 安装xlrd:pip install xlrd

2. 准备数据集:从网上找到的1952~2012年中国国内GDP的数据,数据结构如下:

2. 目标:将这份数据转换成json格式的数据

3. 上代码

#!/usr/bin/python

# coding:utf-8

# 用xlrd读取Excel文件基本用法

import sys

import xlrd

import json

# 设置编码格式

reload(sys)

sys.setdefaultencoding('utf-8')

# 1. 从Excel文件中读取出Book对象

data = xlrd.open_workbook('./gdp_data.xls')

# print type(data)

# 输出:

# 2. 获取sheet页对象

# 2.1 通过sheet索引获取

sheet1 = data.sheet_by_index(0)

# print sheet1

# 输出:

# 2.2 通过sheet名称获取

sheet2 = data.sheet_by_name(u'Sheet1')

# print sheet2

# 输出:

# 3. 获取sheet页的行数和列数

nrows = sheet1.nrows

ncols = sheet1.ncols

# print nrows,ncols

# 输出:62 5

# 说明表格有62行、5列

# 4. 获取第0行的值(是一个列表)

row_data = sheet1.row_values(0)

# print row_data

# 输出:[u'year', u'GDP', u'first industry', u'second industry', u'third industry']

# 5. 获取第0列的值(是一个列表)

col_data = sheet1.col_values(0)

# print col_data

# 输出:[u'year', 1952.0, 1953.0, 1954.0, 1955.0,...]

# 6. 使用行列索引(从0开始)获取单元格的数据

cell_A1 = sheet1.cell(0,0)

# print cell_A1

# print type(cell_A1)

# print cell_A1.value

# 输出:

'''

text:u'year'

year

'''

# 7. 应用:将Excel文件中的数据转换成json数组

# 索引(即表头)

idx = sheet1.row_values(0)

# 最终的数据列表

data = []

# 从第1行开始遍历循环所有行,获取每行的数据

for i in range(1,nrows):

row_data = sheet1.row_values(i)

# 组建每一行数据的字典

row_data_dict = {}

# 遍历行数据的每一项,赋值进行数据字典

for j in range(len(row_data)):

item = row_data[j]

row_data_dict[idx[j]] = item

# 将年份字段转成整形

row_data_dict['year'] = int(row_data_dict['year'])

# 将行数据字典加入到data列表中

data.append(row_data_dict)

print json.dumps(data,indent = 4)

# 输出:

'''

[

{

"GDP": 679.0,

"second industry": 141.8,

"first industry": 342.9,

"third industry": 194.3,

"year": 1952

},

{

"GDP": 824.0,

"second industry": 192.5,

"first industry": 378.0,

"third industry": 253.5,

"year": 1953

},

{

"GDP": 859.0,

"second industry": 211.7,

"first industry": 392.0,

"third industry": 255.3,

"year": 1954

},

...

]

'''

python使用xlrd读取xlsx文件_$ 用python处理Excel文档(1)——用xlrd模块读取xls/xlsx文档...相关推荐

  1. 读取指定文件夹里多个excel表,并将所有excel表数据整合到一个excel中

    1.找出指定文件夹里的所有文件 #-*- encoding: utf-8 -*-# 找出指定文件夹里的所有文件 import osfilePath = 'C:\\Users\\lzk\\Desktop ...

  2. C++按列读取txt文件并保存,替代excel处理

    C++按列读取txt文件并保存,替代excel处理 问题描述 原内容为txt格式,每行数据以"逗号"为分割. 目标为提取其中4.5列,单独以"空格"为分割存储到 ...

  3. python读取txt文件并写入excel-Python读excel生成数据存入txt文件

    我的excel文件结构: 学习了xlrd如何操作excel文件.python读写txt文件.jason.dumps()转换dict为string类型之后,进行了第一次尝试. 第一次尝试: import ...

  4. c++读取utf8文件_【Python】File文件对象

    open()方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError. 注意:使用 open() ...

  5. python读取大文件-强悍的Python读取大文件的解决方案

    Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...

  6. 怎么用python读取大文件_使用Python读取大文件的方法

    背景准备试一试:f =开放(\u201C\/道路\/ \/文件\u201D,\u201Cr\u201D)打印()最后:如果f:()调用读()将读取所有文件的内容,如果文件有10 g,记忆会破灭,所以, ...

  7. python读取csv文件_Hello,Python!小鲸教你Python之文件读取

    关于类的课程我们已经结束啦,现在,我们开启关于Python的一段新旅程吧!大家要跟上小鲸的小红旗,带好小红帽,不要走错路了哦! 文件读取数据 我们在工作或者学习中,会接触到很多存储大量数据的文本文件: ...

  8. python读取超大文件-强悍的Python读取大文件的解决方案

    Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适 ...

  9. python读取svg文件_使用python创建SVG

    我正在构建一组SVG文件,其中包含大量的硬编码值(它们必须打印一些大小为m m的元素,而其他元素必须按百分比缩放,并且大多数值都是相对定义的).我不想用手来管理这些数字(但愿我不想改变一些事情),我想 ...

最新文章

  1. DHCP Server 故障转移实现 (结合H3C交换机)
  2. 皮一皮:能到大四也是不容易了...
  3. 云舒网络译:Rancher1.0正式版公布
  4. VTK:Rendering之FlatVersusGouraud
  5. 每个网页设计者都自以为是
  6. 玩转Javascript 给JS写测试
  7. 用css控制背景图片的位置,大小
  8. 信息系统项目管理师视频教程——10 信息系统项目管理基础
  9. php pdo setfetchmode,PDOStatement::setFetchMode
  10. 考研数据结构-二叉树
  11. 1091 Acute Stroke (30 分)广度优先搜索,用queue,重写一遍
  12. 开源软件、自由软件和免费软件的区别
  13. 关于人性论视角下网络虚拟社会的伦理思考
  14. 个人网站建设教程|本地网站环境搭建|网站制作教程
  15. Table表格边框线、样式
  16. Wex5 app 学习笔记(二)
  17. 【ZJOJ1321】灯
  18. 【matlab教程】18、删除变量
  19. 最真挚的告白与道歉信(代码实现)
  20. 悠漓带你浅谈C语言2(数据类型)

热门文章

  1. linux 安装nfs 客户端,在CentOS 7上安装NFS服务器和客户端
  2. ruby hash方法_Ruby中带有示例的Hash.keys方法
  3. camelcase_在Python中将字符串转换为camelCase
  4. 优先级调度算法动态优先级_与优先级调度有关的问题及其解决方案
  5. SpringBoot 使用注解实现消息广播功能
  6. 万字详解Lambda、Stream和日期
  7. [下载]青岛交通旅游地图[download]
  8. Tez 0.9安装部署+hive on tez配置 + Tez-UI
  9. centos7 docker删除端口映射_centos7安装docker,结合docker安装mysql,学习简单使用
  10. [深入学习C#]利用反射给对象赋值