相关链接:

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

Python导出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实例教程(一):初识Python

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

Python导出Excel为Lua/Json/Xml实例教程(三):终极需求的更多相关文章

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

    Python导出Excel为Lua/Json/Xml实例教程(二):xlrd初体验 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 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. 序列化各个类型成JSON XML实例

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

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

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

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

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

  9. POI导出excel项目(webwork)实例

    后台action: public String exportExcel(){ this.setUserList(this.getUserService().findUserInfosByGroupID ...

随机推荐

  1. LeetCode-1TwoSum(C#)

    # 题目 1. Two Sum Given an array of integers, return indices of the two numbers such that they add up ...

  2. OpenCASCADE Job - Shoe Doctor

    鞋博士 鞋博士经过8年沉淀,在鞋类工业4.0全流程平台上积累了相当的技术实力,获投资商亲睐. 新的一年,在投资商协助下,将踏上新的征途,因此诚邀您加盟顶层技术合伙人. 如果您具备以下实力,我们期待您的 ...

  3. 计算机程序的思维逻辑 (51) - 剖析EnumSet

    上节介绍了EnumMap,本节介绍同样针对枚举类型的Set接口的实现类EnumSet.与EnumMap类似,之所以会有一个专门的针对枚举类型的实现类,主要是因为它可以非常高效的实现Set接口. 之前介 ...

  4. 【Data Cluster】真机环境下MySQL数据库集群搭建

    真机环境下MySQL-Cluster搭建文档  摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔 ...

  5. SQL Server 执行计划利用统计信息对数据行的预估原理二(为什么复合索引列顺序会影响到执行计划对数据行的预估)

    本文出处:http://www.cnblogs.com/wy123/p/6008477.html 关于统计信息对数据行数做预估,之前写过对非相关列(单独或者单独的索引列)进行预估时候的算法,参考这里. ...

  6. 史上最全、JavaScript基础篇

    本章内容: 简介 定义 注释 引入文件 变量 运算符 算术运算符 比较运算符 逻辑运算符 数据类型 数字 字符串 布尔类型 数组 Math 语句 条件语句(if.switch) 循环语句(for.fo ...

  7. ASP.NET Core 中文文档 第三章 原理(1)应用程序启动

    原文:Application Startup 作者:Steve Smith 翻译:刘怡(AlexLEWIS) 校对:谢炀(kiler398).许登洋(Seay) ASP.NET Core 为你的应用程 ...

  8. alienware Win8 系统安装

    原作者网名 alienware-小来: 我的外星人 老是装系统出错.我觉得写的不错.把原作者的东西拿过来.. 对于win7系统的用户来说想要体验下win8.1系统,或者是原来win8.1系统加装固态后 ...

  9. java多线程实现方式

    一.什么是线程? 线程:程序中一个单一的顺序控制流程.进程内一个相对独立的.可调度的执行单元,是系统独立调度和分派CPU的基本单位. 多线程:单个程序中同时运行多个线程完成不同的工作,称为多线程. 特 ...

  10. 【工匠大道】Mac下Java开发环境配置简述

    本文地址 原文地址 分享提纲: 1. 下载JDK1.7 2. 配置java_home 3 .安装tomcat 4 .安装eclipse或者myeclipse 5.  mysql安装 破解版下载请参考M ...