python实现excel转json的例子(改进版)

由于数值策划给出数值是excel表格,但前台flash程序用的又是json格式。服务器也用了json格式,而json又是utf-8编码的,用C++实现,太痛苦。 鉴于此,尝试用python实现看看。没想到,python实现确实很简单,一个多小时搞定(有搜索事半功倍啊)。 今天我又对它做了一点改进。主要1、是支持float和多表格;2、在excel中用"tablelist"描述要转的表和目标json的文件名称(如图)
修改后的代码:# -*- coding: utf-8 -*-

# 这段代码主要的功能是把excel表格转换成utf-8格式的json文件
# lastdate:2011-8-15 14:21 version 1.1
import os
import sys
import codecs
import xlrd #http://pypi.python.org/pypi/xlrd
if len(sys.argv) != 2 :
print "argv count != 2, program exit"
print "USAGE: a.py excelfilename"
exit(0)
print "excel to json"
excelFileName = sys.argv[1]
def FloatToString (aFloat):
if type(aFloat) != float:
return ""
strTemp = str(aFloat)
strList = strTemp.split(".")
if len(strList) == 1 :
return strTemp
else:
if strList[1] == "0" :
return strList[0]
else:
return strTemp def table2jsn(table, jsonfilename):
nrows = table.nrows
ncols = table.ncols
f = codecs.open(jsonfilename,"w","utf-8")
f.write(u"{\n\t\"list\":[\n")
for r in range(nrows-1):
f.write(u"\t\t{ ")
for c in range(ncols):
strCellValue = u""
CellObj = table.cell_value(r+1,c)
if type(CellObj) == unicode:
strCellValue = CellObj
elif type(CellObj) == float:
strCellValue = FloatToString(CellObj)
else:
strCellValue = str(CellObj)
strTmp = u"\"" + table.cell_value(0,c) + u"\":"+ strCellValue
if c< ncols-1:
strTmp += u", "
f.write(strTmp)
f.write(u" }")
if r < nrows-2:
f.write(u",")
f.write(u"\n")
f.write(u"\t]\n}\n")
f.close()
print "Create ",jsonfilename," OK"
return data = xlrd.open_workbook(excelFileName)
table = data.sheet_by_name(u"tablelist")
rs = table.nrows
for r in range(rs-1):
print table.cell_value(r+1,0), "==>", table.cell_value(r+1,2)
desttable = data.sheet_by_name(table.cell_value(r+1,0))
destfilename = table.cell_value(r+1,2)
table2jsn(desttable,destfilename) print "All OK"

http://www.cppblog.com/zdhsoft/archive/2011/08/10/152897.html?opt=admin

python实现excel转json的例子的更多相关文章

  1. python操作excel及json

    有一个存着学生成绩的文件:stuscore.txt,里面存的是json串,json串读起来特别不直观,需要你写代码把它都写到excel中,并计算出总分和平均分,json格式如下: { ":[ ...

  2. Python——Excel转Json工具

    Python工具Excel转Json 前置条件 1.安装python 下载python 我下载的是2.7: 2.配置环境变量 我的电脑右键--属性--高级系统设置--环境变量: 添加python的安装 ...

  3. Python处理Excel和PDF文档

    一.使用Python操作Excel Python来操作Excel文档以及如何利用Python语言的函数和表达式操纵Excel文档中的数据. 虽然微软公司本身提供了一些函数,我们可以使用这些函数操作Ex ...

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

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

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

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

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

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

  7. 利用python将excel数据解析成json格式

    利用python将excel数据解析成json格式 转成json方便项目中用post请求推送数据自定义数据,也方便测试: import xlrdimport jsonimport requests d ...

  8. Excel转Json升级版-Python

    Excel转Json升级版 将excel文件夹中所有xslx文件全部转换json文件,存放在data文件夹中: excel中的格式,从序号为2的行开始,2行为key:1行可以自由写注释: 使用时用双击 ...

  9. 解析3级JSON的例子

    我们都知道现在Ajax盛行,而且前后台数据交流的格式已经换成了JSON了.虽然我对这种做法还是有点担忧的,如果用户关闭了JavaScript怎么办?但是这些担忧还是不能阻止Ajax的盛行和JSON数据 ...

随机推荐

  1. .Net Core 项目引用本地类库方式(一)

    最近了解到.NET Core 项目,引用本地类库DLL的方式有三种 1.非同解决方案下的引用,直接引用,浏览,找到对应的DLL,然后确定引用. 这种方式有个不好的地方就是,如果引用的DLL文件里面,也 ...

  2. 封闭类------新标准c++程序设计

      封闭类:  一个类的成员变量如果是另一个类的对象,就称之为“成员对象”.包含成员对象的类叫封闭类. #include<iostream> using namespace std; cl ...

  3. NSUserDefaults数据存储

    前言 用来保存应用程序设置和属性.用户保存的数据.用户再次打开程序或开机后这些数据仍然存在. 如果往 userDefaults 里存了一个可变数组,取出来的时候这个数组对象就变成了不可变的. NSUs ...

  4. Codeforces Round #551 (Div. 2)B. Serval and Toy Bricks

    B. Serval and Toy Bricks time limit per test 1 second memory limit per test 256 megabytes input stan ...

  5. 光猫烽火Hg220破解超级口令实用图文教程(亲测)

    1.用光猫背后的useradmin 帐号和密码登录 192.168.1.12.然后下载http://192.168.1.1/backupsettings.conf3.用记事本打开,ctrl+F,查找关 ...

  6. js面对对象的几种方式

    1.对象的字面量    var obj = {} 2.创建实例对象    var obj = new Object(); 3.构造函数模式    function fn(){}, new fn(); ...

  7. c++多线程基础3(mutex)

    整理自:zh.cppreference.com/w/cpp/thread 互斥锁 互斥算法避免多个线程同时访问共享资源.这会避免数据竞争,并提供线程间的同步支持.定义于头文件 <mutex> ...

  8. CKEditor富⽂本编辑器

    在运营后台,运营⼈员需要录⼊商品并编辑商品的详情信息,⽽商品的详情信息不是普通的⽂本, 可以是包含了HTML语法格式的字符串.为了快速简单的让⽤户能够在⻚⾯中编辑带格式的⽂本,我们引⼊富⽂本编辑器.富 ...

  9. php中的静态方法实例理解

    <?php header("content-type:text/html;charset=utf-8"); class Human{ static public $name ...

  10. easyui datagrid可编辑表格使用经验分享

    文章目录 1相关接口方法 2列属性formatter 3编辑器类型 3.1基于my97的编辑器 3.2简单的密码编辑器 3.3动态增加/删除编辑器 4字段的级联操作 4.1combobox的级联操作 ...