Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验

相关链接:

Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验

Python导出Excel为Lua/Json/Xml实例教程(三):终极需求

一、什么是xlrd

xlrd是python语言中读取excel的扩展工具,可以实现指定表单、指定单元格的读取。

二、安装xlrd

  • 官网安装:到python官网http://pypi.python.org/pypi/xlrd下载模块安装,前提是已经安装了python 环境。

  • MacOS安装: $ sudo pip install xlrd

三、基本用法

1.读取excel文件

workbook = xlrd.open_workbook('file.xls')

2.获取excel中表单数量

workbook.nsheets

3.获取excel中的一个表单

workbook.sheets()[i]
workbook.sheet_by_index(i)
workbook.sheet_by_name(u'Sheet1')

4.获取行数

sheet.nrows

5.获取列数

sheet.ncols

6.获取整行数据

sheet.row(i)

7.获取整列数据

sheet.col(i)

8.获取单元格数据

sheet.cell(i, j).value

知道这么多,已经足够对Excel进行基本的操作和读取了。

四、简单上手 - 遍历表中数据

1.先来创建一个Excel表名为Configs.xls,然后填上一些数据如图:

2.来段代码简单遍历并输出

3.执行$ python test.py

** 可以看到终端上已经打印出了表中的所有单元格数据 **

本段完整代码文本如下:

# -*- coding: UTF-8 -*- 

# Author:Krisik
# 博客地址:http://www.cnblogs.com/krisirk/ import xlrd workbook = xlrd.open_workbook('Configs.xls')
print "There are {} sheets in the workbook".format(workbook.nsheets)
for booksheet in workbook.sheets():
for col in xrange(booksheet.ncols):
for row in xrange(booksheet.nrows):
value = booksheet.cell(row, col).value
print value

四、更进一步 - 按需求组合数据

我们已经得到了所有单元格数据,接下来就是按照项目的需求,组合成你需要的格式的文件,无论是lua还是json还是xml,都不是问题,下面我将以导出lua为例。

1.我将以第一行为Key,列的数据为Value进行排列,代码如下:

执行$ python test.py后可以发现在同目录下创建了一个Configs.lua的文件,打开后显示:

大功告成!

完整代码文本如下:

# -*- coding: UTF-8 -*- 

# Author:Krisik
# 博客地址:http://www.cnblogs.com/krisirk/ import xlrd fileOutput = open('Configs.lua','w') # 可以在这里写一些固定的注释代码之类的
writeData = "-- @author:kris\n\n\n" workbook = xlrd.open_workbook('Configs.xls')
print "There are {} sheets in the workbook".format(workbook.nsheets) for booksheet in workbook.sheets():
writeData = writeData + 'AT' + booksheet.name + ' = {\n'
for col in xrange(booksheet.ncols):
for row in xrange(booksheet.nrows):
value = booksheet.cell(row, col).value
if row == 0 :
writeData = writeData + '\t' + '["' + value + '"]' + ' = ' + '{ '
else :
writeData = writeData + '"' + str(booksheet.cell(row, col).value) + '" , '
else :
writeData = writeData + '} ,\n'
else :
writeData = writeData + '}\n\n'
else :
fileOutput.write(writeData) fileOutput.close()

四、最后

在实际项目中无论是Excel还是导出格式都会比示例中的更复杂,但是只要掌握了基本的核心功能,剩下的无非是耐心实现罢了。

Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验的更多相关文章

  1. Python导出Excel为Lua/Json/Xml实例教程(三):终极需求

    相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 Python导出E ...

  2. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  3. 导出Excel/Pdf/txt/json/XML/PNG/CSV/SQL/MS-Word/ Ms-Powerpoint/等通过tableExport.js插件来实现

    首先去我的云盘下载需要的js: 链接:https://pan.baidu.com/s/13vC-u92ulpx3RbljsuadWw 提取码:mo8m 页面代码: <!DOCTYPE html& ...

  4. phpExcel导出excel加超级链接的实例代码[转]

    phpexcel实现的导出excel文件的代码,且可以在excel文件中加入超级链接. 说明:PHPExcel的开发包Tests目录有详细使用实例.以下代码支持中文,注意文件编码,文件保存为utf-8 ...

  5. springMVC中使用POI方式导出excel至客户端、服务器实例

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 这里的方法支持导出excel至项目所在服务器,或导 ...

  6. 使用Python对Excel表格进行简单的读写操作(xlrd/xlwt)

    算是一个小技巧吧,只是进行一些简单的读写操作.让人不爽的是xlrd和xlwt是相对独立的,两个模块的对象不能通用,读写无法连贯操作,只能单独读.单独写,尚不知道如何解决. #①xlrd(读) #cod ...

  7. 序列化各个类型成JSON XML实例

    LitJson组件序列化请参考http://www.cnblogs.com/leee/p/4437230.html XML序列化请参考http://www.cnblogs.com/leee/p/424 ...

  8. python 实现excel转化成json文件

    1.准备工作 python 2.7 安装 安装xlrd -- pip install xlrd 2. 直接上代码 import xlrd from collections import Ordered ...

  9. python读取excel数据为json格式(兼容xls\xlsx)

    做自动化时需要从excel读取数据: 本文实现将excel文件数据读取为json格式,方便自动化调用 读取xls文件 使用xlrd读取xls文件代码: import xlrd def read_xls ...

随机推荐

  1. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  2. 游戏编程系列[1]--游戏编程中RPC协议的使用[2]--Aop PostSharp篇

    上一篇我们使用了一个通用JSON协议约定来进行达到远程调用的目的.但是从实现上,我们需要不断的在所有的方法上添加拦截,并且判断拦截,然后执行,这就达到了一个比较繁琐的目的. 之前我们尝试过使用代码生成 ...

  3. 前端移动App开发环境搭建

    移动App开发环境安装 一.环境安装准备软件 二.node的安装 像安装普通软件一样,安装对应版本的node软件,安装好之后就可以运行npm命令行,比如npm init .npm install -g ...

  4. AFNetworking 3.0 源码解读(一)之 AFNetworkReachabilityManager

    做ios开发,AFNetworking 这个网络框架肯定都非常熟悉,也许我们平时只使用了它的部分功能,而且我们对它的实现原理并不是很清楚,就好像总是有一团迷雾在眼前一样. 接下来我们就非常详细的来读一 ...

  5. YYModel 源码解读(一)之YYModel.h

    #if __has_include(<YYModel/YYModel.h>) FOUNDATION_EXPORT double YYModelVersionNumber; FOUNDATI ...

  6. jvm系列(三):java GC算法 垃圾收集器

    GC算法 垃圾收集器 概述 垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了. jvm 中,程序计 ...

  7. Vertica参数的设置

    注:只是经验值设定,仅供参考. RHEL 6.2 CPU 24  Memory 128G  8节点 1.keep more event logs for dc_tuple_mover_events. ...

  8. linux内核调试技术之修改内核定时器来定位系统僵死问题

    1.简介 在内核调试中,会经常出现内核僵死的问题,也就是发生死循环,内核不能产生调度.导致内核失去响应.这种情况下我们可以采用修改系统内核中的系统时钟的中断来定位发生僵死的进程和函数名称.因为内核系统 ...

  9. CSS知识总结(三)

    CSS的常用样式 1.字体样式 1)字体名称(font-family) font-family  :  <family-name> 设置文字名称,可以使用多个名称,或者使用逗号分隔,浏览器 ...

  10. Rafy 框架 - 插件级别的扩展点

    本章说明如何使用额外的插件(如客户化插件)对另一插件(如产品插件)进行扩展.   使用场景 在 产品线工程 中,项目的研发分为领域工程和应用工程.这个过程中会需要对领域工程中的内容进行大量的扩展.   ...