Python导出Excel为Lua/Json/Xml实例教程(三):终极需求
2015-11-19 23:40
633 查看
相关链接:
Python导出Excel为Lua/Json/Xml实例教程(一):初识PythonPython导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验
Python导出Excel为Lua/Json/Xml实例教程(三):终极需求
一、终极需求
前文的实例都是比较基础的例子,现在来一个贴近真实项目的实例。下图是要操作的表格:
需求列表:
Excel中导出的数据要有类型区分,比如int,string等
第一行为列的中文名称,这个名称只是给策划看,不导出
每张表右侧可以随便增加注释,注释不导出
需要字段ID和该ID在表中的index的一一对应数据,便于程序索引
二、解决方案
主要实现部分代码如图:三、处理结果
执行脚本后打开生成的lua文件,可以看到完美解决了列出的需求。
四、全部代码
# -*- coding: UTF-8 -*- # Author:Krisik # 博客地址:http://www.cnblogs.com/krisirk/ import xlrd fileOutput = open('Configs.lua','w') # 让py可以读取文件中的中文 import sys reload(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实例教程(一):初识PythonPython导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验
相关文章推荐
- lua os.time()时区的坑……
- Mac下安装Lua编译器
- 调试php源代码,重写加密函数,封装接口供lua使用
- Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验
- C与Lua互相调用的时候,栈变化分析
- lua 可变参数
- Lua(三)——语句
- lua时间函数
- ngx_lua常用变量参数
- lua 开发学习之旅三
- 热更新lua语法
- (一)Lua开篇
- lua之字符串格式化
- lua 截取中文UTF8字符串
- leetcode之Evaluate Reverse Polish Notation
- lua中使用json格式
- lua中使用json格式
- lua ipairs与 pairs ,冒号,点号 实例
- 2015.11.18——Lua中文教程
- lua捕获异常(tryCatch封装)