zoukankan      html  css  js  c++  java
  • Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验

    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
    
    
    "
    
    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 + ' = {
    '
    	for col in xrange(booksheet.ncols):
    		for row in xrange(booksheet.nrows):
    			value = booksheet.cell(row, col).value
    			if  row == 0 :
    				writeData = writeData + '	' + '["' + value + '"]' + ' = ' + '{ '  
    			else :
    				writeData = writeData + '"' + str(booksheet.cell(row, col).value) + '" , '
    		else :
    			writeData = writeData + '} ,
    '
    	else :
    		writeData = writeData + '}
    
    '
    else :
    	fileOutput.write(writeData)
    
    fileOutput.close()
    
    

    四、最后

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

    如果有任何疑问或是建议,欢迎给我留言!


    作者:Krisirk

    出处:http://www.cnblogs.com/krisirk

    所有文章若非标注转载,均为原创,文中观点仅代表作者个人。

    原创文章版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。

  • 相关阅读:
    ubuntu 启用apache运行状态信息查看
    Loadrunner生成随机字符
    Linux 如何在 vi 里搜索关键字
    Loadrunnber 报错误:Error memory violation : Exception ACCESS_VIOLATION received.的一种情况
    Could not load file or assembly 'XXX' or one of its dependencies.
    C# 显示年月日星期
    C#中timer类的用法
    详解SQL Server的两个存储过程:sp_MSforeachtable/sp_MSforeachdb
    C# winform DataGridView 的18种常见属性
    WdatePicker日历控件使用方法
  • 原文地址:https://www.cnblogs.com/krisirk/p/4978063.html
Copyright © 2011-2022 走看看