Json 转 Excle (xlsx) 格式的程序
本帖最后由 52hackkey 于 2025-2-28 19:22 编辑因工作需要,经常需要将JSON 格式的 列表数据转换成 Excle 格式保存。
Office 中其实内置了这个功能(导入数据->来自文件->JSON 文件),但是超级不好用。
故此写了这个工具,可以一键方便的把 JSON 格式的列表文件转换成 Excle 格式的文件保存
如图,假设你有一个 格式如下图的json 格式的文件
双击运行程序,把json 格式的文件拖入命令行,即可自动转成excle
工具使用 Pyinstaller 编译打包,可在下面下载成品:
下载地址(蓝奏云):
https://iw3c.lanzoue.com/ioopm2p4m7cd
如果担心打包后的产物安全,或者想要二次开发的同学,可复制下面的源代码自行编译:
import sys,json,os
from func_timeout import func_set_timeout, FunctionTimedOut
import msvcrt
import xlsxwriter
import time
File_name = ''
@func_set_timeout(0.1)
def get_input_file(pre_str=''):
global File_name
File_name = pre_str
while True:
File_name += msvcrt.getwch()
if __name__ == '__main__':
print('请拖入需要转换的 JSON 文件')
first_chr = msvcrt.getwch()
try:
get_input_file(first_chr)
except FunctionTimedOut:
input_file_path = File_name.strip('"')
print("开始转换 JSON 数据文件[%s]..." % (input_file_path))
try:
data = json.load(open(input_file_path,"r",encoding='utf-8'))
if type(data) != type([]):
print("错误,JSON 数据不是 List!")
else:
filename = os.path.basename(input_file_path)
t = filename.split(".",1)
outfilename = "./" + t + ".xlsx"
workbook = xlsxwriter.Workbook(outfilename)
worksheet = workbook.add_worksheet("sheet1")
fields = ["_id"]
for row in data:
for key in row.keys():
if key not in fields:
fields.append(key)
fields.sort()
col_id = 0
for field in fields:
worksheet.write(0,col_id,field)
col_id = col_id + 1
row_id = 1
col_id = 0
for row in data:
for field in fields:
if field == "_id":
worksheet.write(row_id,col_id,row_id+1)
if field in row.keys():
worksheet.write(row_id,col_id,row)
col_id = col_id + 1
col_id = 0
row_id = row_id + 1
workbook.close()
print("数据转换成功,已经保存到:" + os.path.realpath("./" + outfilename))
except Exception as err:
print(err)
print("读取 文件失败,无法解析的JSON 文件")
print("3s 后自动关闭")
time.sleep(3)
#msvcrt.getwch()
群主,可以开发个excel转json格式的工具不? {
"code": 1,
"data": {
"list": [
{
这种多级的好像支持不了
页:
[1]