用python实现Excel转Json

ExcelToJson.bat

@echo -----------------------------------Excel转Json开始-----------------------------------
:: python ExcelToJson.py  "excel路径" "Json路径"  "要屏蔽的工作表  英文逗号隔开"
python ExcelToJson.py  "C:\Users\utilToop\excel" "C:\Users\utilToop\excel" "Sheet1,Sheet2"
@echo -----------------------------------Excel转Json结束-----------------------------------
pause

ExcelToJson.py

import pandas as pd
import json
import os
import sys
ExcelPath = sys.argv[1]#Excel文件路径
JsonPath = sys.argv[2]#JsonPath文件路径
shield = sys.argv[3]#屏蔽工作表

if JsonPath == "":
    JsonPath = ExcelPath
if shield !="":
    shield = shield.split(",")
else:
    shield = []
#print("需要屏蔽的表:",shield)
def excelToJson(filename,path):
    idx = filename.rfind(".")
    name = filename[:idx]#文件名
    suffix = filename[idx:]#后缀
    if suffix not in [".xlsx",".xls"]:
        return
    
   # 读取EXCEL文件
    sheet = pd.read_excel(f"{path}/{filename}", sheet_name=None, skiprows=2)
    for key in sheet.keys():
        if key in shield:
            continue#跳过屏蔽表
        print(key)
        # 使用PANDAS的to_json API直接将EXCEL转化为JSON
        thisisjson = sheet[key].to_json(orient='records')
        # 将JSON文件变成Python对象
        thisisjson_dict = json.loads(thisisjson)

        # 保存JSON文件
        with open(f'{JsonPath}/{key}.json', 'w',encoding='utf-8') as json_file:
            json.dump(thisisjson_dict, json_file, indent=4,ensure_ascii=False) 

for filename in os.listdir(ExcelPath):
    excelToJson(filename,ExcelPath);