77 lines
2.2 KiB
Python
77 lines
2.2 KiB
Python
|
|
import pandas as pd
|
|||
|
|
import json
|
|||
|
|
import csv
|
|||
|
|
|
|||
|
|
def excel_to_csv(excel_path, csv_path):
|
|||
|
|
"""Excel转CSV"""
|
|||
|
|
try:
|
|||
|
|
df = pd.read_excel(excel_path)
|
|||
|
|
df.to_csv(csv_path, index=False, encoding='utf-8-sig')
|
|||
|
|
return True
|
|||
|
|
except Exception as e:
|
|||
|
|
raise Exception(f"Excel转CSV失败: {str(e)}")
|
|||
|
|
|
|||
|
|
def csv_to_excel(csv_path, excel_path):
|
|||
|
|
"""CSV转Excel"""
|
|||
|
|
try:
|
|||
|
|
df = pd.read_csv(csv_path)
|
|||
|
|
df.to_excel(excel_path, index=False)
|
|||
|
|
return True
|
|||
|
|
except Exception as e:
|
|||
|
|
raise Exception(f"CSV转Excel失败: {str(e)}")
|
|||
|
|
|
|||
|
|
def json_to_excel(json_path, excel_path):
|
|||
|
|
"""JSON转Excel"""
|
|||
|
|
try:
|
|||
|
|
with open(json_path, 'r', encoding='utf-8') as f:
|
|||
|
|
data = json.load(f)
|
|||
|
|
|
|||
|
|
# 如果是列表格式的JSON
|
|||
|
|
if isinstance(data, list):
|
|||
|
|
df = pd.DataFrame(data)
|
|||
|
|
else:
|
|||
|
|
# 如果是字典格式,转换为单行DataFrame
|
|||
|
|
df = pd.DataFrame([data])
|
|||
|
|
|
|||
|
|
df.to_excel(excel_path, index=False)
|
|||
|
|
return True
|
|||
|
|
except Exception as e:
|
|||
|
|
raise Exception(f"JSON转Excel失败: {str(e)}")
|
|||
|
|
|
|||
|
|
def excel_to_json(excel_path, json_path):
|
|||
|
|
"""Excel转JSON"""
|
|||
|
|
try:
|
|||
|
|
df = pd.read_excel(excel_path)
|
|||
|
|
data = df.to_dict('records')
|
|||
|
|
|
|||
|
|
with open(json_path, 'w', encoding='utf-8') as f:
|
|||
|
|
json.dump(data, f, ensure_ascii=False, indent=2)
|
|||
|
|
|
|||
|
|
return True
|
|||
|
|
except Exception as e:
|
|||
|
|
raise Exception(f"Excel转JSON失败: {str(e)}")
|
|||
|
|
|
|||
|
|
def csv_to_json(csv_path, json_path):
|
|||
|
|
"""CSV转JSON"""
|
|||
|
|
try:
|
|||
|
|
df = pd.read_csv(csv_path)
|
|||
|
|
data = df.to_dict('records')
|
|||
|
|
|
|||
|
|
with open(json_path, 'w', encoding='utf-8') as f:
|
|||
|
|
json.dump(data, f, ensure_ascii=False, indent=2)
|
|||
|
|
|
|||
|
|
return True
|
|||
|
|
except Exception as e:
|
|||
|
|
raise Exception(f"CSV转JSON失败: {str(e)}")
|
|||
|
|
|
|||
|
|
def json_to_csv(json_path, csv_path):
|
|||
|
|
"""JSON转CSV"""
|
|||
|
|
try:
|
|||
|
|
with open(json_path, 'r', encoding='utf-8') as f:
|
|||
|
|
data = json.load(f)
|
|||
|
|
|
|||
|
|
df = pd.DataFrame(data)
|
|||
|
|
df.to_csv(csv_path, index=False, encoding='utf-8-sig')
|
|||
|
|
return True
|
|||
|
|
except Exception as e:
|
|||
|
|
raise Exception(f"JSON转CSV失败: {str(e)}")
|