Python导出Excel为Lua/Json/xml实例教程(一):初识Python
Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验
Python导出Excel为Lua/Json/Xml实例教程(三):终极需求
前文的实例都是比较基础的例子,现在来一个贴近真实项目的实例。
下图是要操作的表格:
需求列表:
主要实现部分代码如图:
执行脚本后打开生成的lua文件,可以看到完美解决了列出的需求。
# -*- coding: UTF-8 -*- # Author:Krisik# 博客地址:http://www.VEVb.com/krisirk/import xlrdfileOutput = open('Configs.lua','w')# 让py可以读取文件中的中文import sysreload(sys)sys.setdefaultencoding("utf-8")# 可以在这里写一些固定的注释代码之类的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(): # print "Current Booksheet:[" + booksheet.name + "]" writeData = writeData + 'AT' + booksheet.name + ' = {/n' # 处理id和index的特殊行 writeData = writeData + '/t' + 'keys' + ' = ' + '{ ' for row in xrange(booksheet.nrows): if row <= 2 : continue else : Id = str(int(booksheet.cell(row, 1).value)) index = str(int(booksheet.cell(row, 0).value)) writeData = writeData + '[' +Id + '] = ' + index + ' , ' else: writeData = writeData + '} ,/n' for col in xrange(booksheet.ncols): # 如果第二行为空,则此列为注释列 if not any(booksheet.cell(1,col).value) : continue # 第三行为参数类型定义 colType = booksheet.cell(2, col).value for row in xrange(booksheet.nrows): value = booksheet.cell(row, col).value if row == 0 or row == 2: continue elif row == 1 : writeData = writeData + '/t' + '["' + value + '"]' + ' = ' + '{ ' else : if colType == "int" : writeData = writeData + str(int(booksheet.cell(row, col).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的文章就结束了,相信对于绝大部分的需求或者更复杂的需求都能游刃有余了。
tips:通过代码生成Excel文件可以参考xlwt。
xlwt是python用来写excel的工具,跟xlrd对应。
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验
新闻热点
疑难解答