diff --git a/__pycache__/main.cpython-312.pyc b/__pycache__/main.cpython-312.pyc index ecf0bf5..f33e45f 100644 Binary files a/__pycache__/main.cpython-312.pyc and b/__pycache__/main.cpython-312.pyc differ diff --git a/main.py b/main.py index 9db773f..3a0c6c4 100644 --- a/main.py +++ b/main.py @@ -91,12 +91,43 @@ async def convert_json_to_excel(json_data: dict, original_filename: str): Função auxiliar para converter JSON em Excel com formatação adequada """ try: + # Mapeamento de nomes de colunas (adicione mais conforme necessário) + column_mapping = { + 'id': 'ID', + 'name': 'Nome', + 'email': 'E-mail', + 'phone': 'Telefone', + 'address': 'Endereço', + 'created_at': 'Data de Criação', + 'updated_at': 'Data de Atualização', + 'status': 'Status', + 'price': 'Preço', + 'quantity': 'Quantidade', + 'description': 'Descrição', + # Adicione mais mapeamentos conforme necessário + } + # Converte JSON para DataFrame if isinstance(json_data, list): df = pd.DataFrame(json_data) else: df = pd.DataFrame([json_data]) + # Renomeia as colunas usando o mapeamento + df = df.rename(columns=lambda x: column_mapping.get(x, x.replace('_', ' ').title())) + + # Formata colunas de data se existirem + date_columns = ['Data de Criação', 'Data de Atualização'] + for col in date_columns: + if col in df.columns: + df[col] = pd.to_datetime(df[col]).dt.strftime('%d/%m/%Y %H:%M') + + # Formata colunas de preço se existirem + price_columns = ['Preço'] + for col in price_columns: + if col in df.columns: + df[col] = df[col].apply(lambda x: f'R$ {float(x):,.2f}' if pd.notnull(x) else '') + # Cria nome único para o arquivo Excel timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") excel_filename = f"uploads/{os.path.splitext(original_filename)[0]}_{timestamp}.xlsx" @@ -188,4 +219,4 @@ async def convert_json_to_excel(json_data: dict, original_filename: str): if __name__ == "__main__": import uvicorn - uvicorn.run(app, host="0.0.0.0", port=8000) + uvicorn.run(app, host="0.0.0.0", port=8000, log_level="info") diff --git a/uploads/json_data_20241114_115131.xlsx b/uploads/json_data_20241114_115131.xlsx new file mode 100644 index 0000000..364eebc Binary files /dev/null and b/uploads/json_data_20241114_115131.xlsx differ diff --git a/uploads/json_data_20241114_115316.xlsx b/uploads/json_data_20241114_115316.xlsx new file mode 100644 index 0000000..5573931 Binary files /dev/null and b/uploads/json_data_20241114_115316.xlsx differ diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000..ef7ef60 --- /dev/null +++ b/vercel.json @@ -0,0 +1,16 @@ +{ + "version": 2, + "builds": [ + { + "src": "main.py", + "use": "@vercel/python", + "config": { "maxLambdaSize": "15mb" } + } + ], + "routes": [ + { + "src": "/(.*)", + "dest": "main.py" + } + ] +}