#coding:utf-8
######将指定文件夹内的xlsx文件转换为json格式
import os
import sys
import json
import subprocess
import getpass
import xlrd
reload(sys)
sys.setdefaultencoding('utf-8')
import traceback
os.chdir('D:/workcode/pythonTool/configfile')
class SearchFile:
def __init__(self):
self.fileList = []
self.recursiveDir(os.getcwd())
def recursiveDir(self, srcPath):
''' 递归指定目录下的所有文件'''
dirList = [] #所有文件夹
files = os.listdir(srcPath) #返回指定目录下的所有文件,及目录(不含子目录)
for f in files:
#目录的处理
if (os.path.isdir(srcPath + '/' + f)):
if (f[0] == '.'):
#排除隐藏文件夹
pass
else:
#添加非需要的文件夹
dirList.append(f)
#文件的处理
elif (os.path.isfile(srcPath + '/' + f)):
self.fileList.append(srcPath + '/' + f) #添加文件
#遍历所有子目录,并递归
for dire in dirList:
#递归目录下的文件
self.recursiveDir(srcPath + '/' + dire)
def getAllFile(self):
''' get all file path'''
return tuple(self.fileList)
class ExcelHandle:
def __init__(self):
self.content = []
self.filename = ''
self.sheetname = ''
def decode(self,filename,sheetname):
try:
filename = filename.decode('utf-8')
sheetname = sheetname.decode('utf-8')
except Exception:
print traceback.print_exc()
return filename, sheetname
def read_excel(self,filename,sheetname):
self.filename, self.sheetname = self.decode(filename,sheetname)
self.content = []
rbook = xlrd.open_workbook(self.filename)
sheet = rbook.sheet_by_name(self.sheetname)
rows = sheet.nrows
cols = sheet.ncols
keys = sheet.row_values(0)
for i in range(rows-1):
row_content = {}
for j in range(cols):
tempValue = sheet.cell_value(i+1, j)
if (sheet.cell_type(i+1, j) == 2) and (tempValue%1.0 == 0.0):
row_content[keys[j]] = int(tempValue)
else:
row_content[keys[j]] = tempValue
self.content.append(row_content)
print '[' + ','.join("'" + str(element) + "'" for element in row_content) + ']'
def write_json(self):
json_str = json.dumps(self.content, ensure_ascii=False, sort_keys=True, indent=4, separators=(',',':'))
output_file = self.filename.replace(".xlsx", ".json")
file = open(output_file, "w")
file.write(json_str)
file.close()
def excel2json(filename,sheetname):
execlhdl = ExcelHandle()
execlhdl.read_excel(filename,sheetname)
execlhdl.write_json()
def startConvert():
searchfile = SearchFile()
fileList = list(searchfile.getAllFile())
for file in fileList:
(filepath,filename) = os.path.split(file)
(shotname,extension) = os.path.splitext(filename)
print filepath,filename
if (extension == '.xlsx'):
excel2json(file,shotname)
if __name__ == "__main__":
startConvert()
python Excel 转为 json格式.zip
版权申诉
73 浏览量
2023-03-01
14:58:14
上传
评论
收藏 2KB ZIP 举报
GZM888888
- 粉丝: 176
- 资源: 2943
最新资源
- flowable-designer-5.22.0.zip
- threadmanager.cpp
- 腾讯云小程序 - 一站式开发与部署平台
- 基于JSP+Java+Servlet采用MVC模式开发的购物网站+源码(毕业设计&课程设计&项目开发)
- fastgestures安装包,模拟mac的触控板收拾,两指代表右击, 三指拖拽
- 基于组态王的升降式横移立体车库控制系统+源码(毕业设计&课程设计&项目开发)
- 基于python+Django和协同过滤算法的电影推荐系统+源码(毕业设计&课程设计&项目开发)
- 环境配置 vscode+jupyter
- 项目全部代码,还包含使用到的图片
- 项目全部代码,还包含使用到的图片
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈