Python3 之EXCEL表转json之前人栽树后人百度,欢迎来看

前人栽树 我来百度

3个小时百度吧啦吧啦 然后就生下了 它

环境Python3.7.2

把它存成py脚本放在有excel的表的文件夹里面运行就可以了

# 这段代码主要的功能是把excel表格转换成utf-8格式的json文件
# lastdate:2011-8-15 14:21 version 1.1
# Modify by Snail version2.1
# 修改成读取下面这种类型的表为json
# +++++++++++++++++++++++++++++++++++++++
# 这是一张xxx表
# +++++++++++++++++++++++++++++++++++++++
#   字段1      +    字段2    +    字段3
# +++++++++++++++++++++++++++++++++++++++
#   id        +     name    +    string
# +++++++++++++++++++++++++++++++++++++++
#    1        +     名字1   +    内容1
# +++++++++++++++++++++++++++++++++++++++
#    2        +     名字2   +    内容2
# +++++++++++++++++++++++++++++++++++++++
#    3        +     名字3   +    内容3
# +++++++++++++++++++++++++++++++++++++++
# modifyData 2019-03-09 01:22:28
import os
import sys
import codecs
import xlrd  # http://pypi.python.org/pypi/xlrd


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 table2json(table, jsonfilename, fileDir):
    hang = table.nrows
    lie = table.ncols
    f = codecs.open(fileDir+jsonfilename, "w", "utf-8")
    f.write(u"[")
    # 这里我们这的表是从第三行开始读表前面两行是沙雕
    for r in range(2, hang-1):
        # 每一行一组数据 一个对象的开始用{
        f.write(u"{")
        for c in range(lie-1):
            # 定义一个空的字符串
            strCellValue = u""
            # 获取一个单元格的值
            CellObj = table.cell_value(r+1, c)
            # 判断数据类型如果是float类型要转成字符串
            if type(CellObj) == float:
                strCellValue = FloatToString(CellObj)
            else:
                # 转成字符串
                strCellValue = str(CellObj)
                # 坑爹的在值里面写了"在里面 一定要去掉 如果有其他的沙雕东西要过滤的话就在这里做过滤
                strCellValue = strCellValue.replace(u"\"", u"")
                # 变成Json的值字符串要加"
                strCellValue = u'\"'+strCellValue+u'\"'
            # 取第二行的名称作为字段的
            strTmp = u"\"" + table.cell_value(2, c) + u"\":" + strCellValue
            # 如果不是最后一个需要加,
            if c < lie-2:
                strTmp += u","
            # 写字符串到{}中
            f.write(strTmp)
        f.write(u"}")
        # 每一个对象后面要加,
        if r < hang-2:
            f.write(u",")
        # 沙雕强迫症写完一个对象要换行,不换也可以的
        # f.write(u"\n")
    # 最后写完了所有的数据要用个]反中括号包起来
    f.write(u"]")
    # 关闭文件还要我说吗
    f.close()
    # 告诉愚蠢的人类这个表已经导出成json倒完了 没见过这么蠢的人类 写完了还要我说
    print("转换完成表 ", jsonfilename)
    return


# 取当前目录
curPath = os.path.dirname(__file__)
# 在当前目录下创建一个文件夹JSON
jsonDir = curPath+'\\JSON\\'
# 判断文件夹是否存在决定建不建文件夹
isExists = os.path.exists(jsonDir)
if not isExists:
    os.makedirs(jsonDir)

# 遍历当前目录查询出所有的excel表
fileNameList = os.listdir(curPath)
for a in fileNameList:
    # 这里只能读取xlsx的表 如果是其他的表请加入判断
    extName = os.path.splitext(a)
    # 剔除缓存的表
    if(extName[0].find("~") >= 0 or extName[0].find("$") >= 0):
        continue
    # 只有这三种格式的才转 其他的不管
    if(extName[1] == '.xlsx' or extName[1] == ".csv" or extName[1] == ".xls"):
        data = xlrd.open_workbook(curPath+'\\'+'item.xlsx')
        table = data.sheet_by_index(0)
        table2json(table, a.replace(".xlsx", "")+'.json', jsonDir)
print("所有的表转换完成^_^")

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值