新建 base文件夹,把所有excel复制进去
base文件夹和.py文件同级
import os
import xlrd
from collections import OrderedDict
import json
import codecs
def findAllFile(base):
for root, ds, fs in os.walk(base):
for f in fs:
if f.endswith(suffix):
fullname = os.path.join(root, f)
yield fullname
def excel2json(filename):
print("当前处理文件:"+filename)
wb = xlrd.open_workbook(filename)
convert_list = []
sh = wb.sheet_by_index(0)
title = sh.row_values(0)
for rownum in range(1, sh.nrows):
print(sh.nrows)
return
rowvalue = sh.row_values(rownum)
single = OrderedDict()
for colnum in range(0, len(rowvalue)):
single["id"] = rownum # id
print(filename)
print(single)
if( rowvalue[colnum] == ''):
single[title[colnum]] = "null"
else:
single[title[colnum]] = rowvalue[colnum]
convert_list.append(single)
j = json.dumps(convert_list,ensure_ascii=False,indent=4)
# print(j)
with codecs.open(filename+'.json',"w","utf-8") as f:
f.write(j)
def main():
#所有文件在base文件夹下
base = 'base/'
for i in findAllFile(base):
# print(i)
excel2json(i)
if __name__ == '__main__':
suffix = ".xlsx"
main()