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

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

1. 准备工作:

1. 安装xlrd:pip install xlrd

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

41ba63c6f58f1aecb143cea853cd5286.png

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

},

...

]

'''

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebService技术详解CXF

WebService WebService简介 Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么&…

java 类 加载 初始化_java中类的初始化和加载

最近在阅读孙卫琴的java面向对象一书中,看到对java中类的初始化和加载中的论述比较系统,故笔记之1)类的初始化,JAVA在初始化一个类时,以下步骤A 假如类存在直接的父类,并且这个父类还没有初始化,则先初始化…

Java webservice详解

文章目录1 webservice概述2 webservice核心要素2.1 SOAP2.2 WSDL3 webservice的使用场景4 webservice的结构5 Java中的webservice5.1 webservice服务端5.2 webservice客户端6 WDSL文件说明7 webservice 请求与响应监控8 webservice 在Tomcat中发布9 在Spring中使用webservice1 …

java net php_Java.netPHP比较 | php外包与php技术服务商

Java\.net\PHP比较首先,我们把Java 、.Net、 PHP应用方面占有率做个比较,简单的把目前主流应用分成两个大类,一个是企业应用,一个是Web网站应用,下面这个表格是我归纳的,不一定准确,但是能说明一…

HashMap、HashTable、ConcurrentHashMap、HashSet区别 线程安全类

HashMap专题:HashMap的实现原理–链表散列 HashTable专题:Hashtable数据存储结构-遍历规则,Hash类型的复杂度为啥都是O(1)-源码分析 Hash,Tree数据结构时间复杂度分析:HashMap, HashTable,HashSet,TreeMap 的时间复杂…

hibernate mysql cascade_Hibernate第五篇【inverse、cascade属性详解】

前言上一篇博文已经讲解了一对多和多对一之间的关系了,一对多和多对一存在着关联关系(外键与主键的关系)。本博文主要讲解Inverse属性、cascade属性。这两个属性对关联关系都有影响Inverse属性Inverse属性:表示控制权是否转移..true:控制权已转移【当前一…

java请编写公共类继承抽象类_(Java相关)怎么理解抽象类,继承和接口?

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:海子来源:博客园一.抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽…

Maven:repositories、distributionManagement、pluginRepositories中repository的区别

一、repositories中的repository二、distributionManagement中的repository三、pluginRepositories中的repository 一、repositories中的repository 表示从什么库地址可以下载项目依赖的库文件&#xff0c;比如&#xff1a; <repositories><repository><id>…

maven配置之:<distributionManagement>snapshot快照库和release发布库

在使用maven过程中&#xff0c;我们在开发阶段经常性的会有很多公共库处于不稳定状态&#xff0c;随时需要修改并发布&#xff0c;可能一天就要发布一次&#xff0c;遇到bug时&#xff0c;甚至一天要发布N次。 我们知道&#xff0c;maven的依赖管理是基于版本管理的&#xff0c…

maven-compiler-plugin 插件详解

作用&#xff1a;指定maven编译的jdk版本和字符集,如果不指定,maven3默认用jdk 1.5 maven2默认用jdk1.3 <plugin> <!-- 指…

面试常见java异常题_Java异常面试题(含答案)

1、Java中异常分为哪两种&#xff1f;编译时异常运行时异常2、异常的处理机制有几种&#xff1f;异常捕捉&#xff1a;try…catch…finally&#xff0c;异常抛出&#xff1a;throws。3、如何自定义一个异常继承一个异常类&#xff0c;通常是RumtimeException或者Exception4、tr…

maven打包插件:maven-compiler-plugin、maven-dependency-plugin、maven-jar-plugin、maven-resources-plugin详解

最近开发的产品&#xff0c;我们是有四五个maven模块&#xff0c;开发阶段一直是在eclipse中运行的&#xff0c;然后快发版的时候&#xff0c;需要把这些项目打成jar包&#xff0c;通过命令去启动&#xff0c;那首先就得把这些模块项目打包&#xff0c;或者拷贝一些资源文件等等…

Java Web访问.action_java设置web首页访问action

index.jsp一般首页进的是静态页面如果需要首页是动态的页面 就需要先进action访问数据 再回到首页显示因为 welcome-file 必须是实际存在的文件&#xff0c;不能是action或者servlet路径如果直接把index.jsp改成action 会出现404index.action直接设置action&#xff0c;404和s…

spring boot中打包插件spring-boot-maven-plugin和maven-jar-plugin的关联

简介 用spring boot快速开发时&#xff0c;通常用spring-boot-maven-plugin插件将springboot的应用程序打包成jar文件&#xff0c;然后通过java -jar运行&#xff0c;很方便。但是如果是部署到服务器上&#xff0c;每次更改代码后替换的包都比较大&#xff0c;至少30MB以上&am…

简化java_JAVA之旅-简化java开发

为了降低java开发的复杂性&#xff0c;spring采取了以下4种关键策略基于POJO的轻量级和最小侵入行编程为使不让应用与框架绑死&#xff0c;一个bean不会实现&#xff0c;继承或者导入Spring API相关的任何东西&#xff0c;只是一个普通的java对象。2. 通过依赖注入和面相接口实…

Maven父子结构的项目依赖使用以及打包依赖_微服务项目(maven父子级项目)怎么打包

Maven父子结构的项目依赖使用以及打包依赖 1&#xff1a;在父子结构项目中&#xff0c;如果要是用其他模块的类。在当前项目中的pom中 加入 其他模块的配置 <dependency><groupId>com.spring.mySpring</groupId><artifactId>mySpring-utils</artif…

搭建一个完整的微服务项目

一.项目技术架构 1.技术栈 前台技术 Node.js、Npm、Vue.js、WebPack、Vue Cli、Element UI 后台架构 微服务架构&#xff1a;按照功能拆分N多个服务&#xff0c;每个服务可以独立技术选型,独立开发,独立部署,独立运维.&#xff0c;单个服务使用基于ssm的springboot&#xff0…

java 雅思_基于JAVA的雅思考试管理系统的设计与实现(SSH,MySQL)(含录像)

基于JAVA的雅思考试管理系统的设计与实现(SSH,MySQL)(含录像)(任务书,毕业论文12000字,程序代码,MySQL数据库)本文分析了基于JAVA的雅思考试管理系统的设计与实现技术&#xff0c;结合实际提出了本系统的总体结构设计和主要模块的功能实现。本系统分为二个子系统:管理员子系统&…

java开发利器 源码_Java开发的利器: 反编译工具 JD-GUI

老赵说起来也能算个Java程序员&#xff0c;可是写过的Java代码并不多&#xff0c;可老赵实实在在是从程序员干起的。虽然肚子里也装了不少的东西&#xff0c;可作为一件乐此不疲的事情&#xff0c;就是看那些所谓“高人”的代码。高人们的行事风格&#xff0c;十人十样&#xf…

Maven搭建Nexus私服

私服的介绍 1 什么是私服 私服是一种特殊的远程仓库&#xff0c;它是架设在局域网的仓库服务&#xff0c;私服代理广域网上的远程仓库&#xff0c;供局域网使用。 在企业开发中&#xff0c;私服的建设是有必要的&#xff0c;其好处如下&#xff1a; 1.1 节省资金、外网带宽…