72 lines
2.2 KiB
Python
Executable File
72 lines
2.2 KiB
Python
Executable File
import json
|
|
from openpyxl import Workbook
|
|
import mysql.connector
|
|
|
|
def export_cadastros_to_excel():
|
|
# Configurações de conexão com o MySQL
|
|
conn = mysql.connector.connect(
|
|
host="localhost", # Como o PHP chamará este script no servidor, usamos localhost
|
|
user="root",
|
|
password="",
|
|
database="xcmg"
|
|
)
|
|
|
|
cursor = conn.cursor()
|
|
|
|
# Consulta da tabela cadastros (incluindo dados_adicionais)
|
|
cursor.execute("""
|
|
SELECT id, nome, empresa, cargo, telefone, codigo, ativado, gerado, status, dados_adicionais
|
|
FROM cadastros
|
|
""")
|
|
rows = cursor.fetchall()
|
|
|
|
cursor.close()
|
|
conn.close()
|
|
|
|
# Cria um arquivo Excel
|
|
wb = Workbook()
|
|
ws = wb.active
|
|
ws.title = "Cadastros IUS"
|
|
|
|
# Cabeçalho da planilha (incluindo novos campos)
|
|
headers = [
|
|
'ID', 'Nome', 'Empresa', 'Cargo', 'E-mail',
|
|
'Setor', 'Segmento', 'Funcionários',
|
|
'Telefone', 'Código', 'Ativado', 'Data Cadastro', 'Status'
|
|
]
|
|
ws.append(headers)
|
|
|
|
# Insere os dados na planilha
|
|
for row in rows:
|
|
(id_db, nome, empresa, cargo, telefone, codigo, ativado, gerado, status, dados_json_raw) = row
|
|
|
|
email = ""
|
|
setor = ""
|
|
segmento = ""
|
|
funcionarios = ""
|
|
|
|
if dados_json_raw:
|
|
try:
|
|
# O banco armazena aspas simples duplicadas ('') como escape do MySQL
|
|
json_clean = dados_json_raw.replace("''", "'")
|
|
extras = json.loads(json_clean)
|
|
email = extras.get('email', '')
|
|
setor = extras.get('setor', '')
|
|
segmento = extras.get('segmento', '')
|
|
funcionarios = extras.get('funcionarios', '')
|
|
except Exception as e:
|
|
print(f"Erro ao processar JSON para ID {id_db}: {e}")
|
|
|
|
# Monta a linha para o Excel
|
|
ws.append([
|
|
id_db, nome, empresa, cargo, email,
|
|
setor, segmento, funcionarios,
|
|
telefone, codigo, ativado, gerado, status
|
|
])
|
|
|
|
# Salva a planilha
|
|
wb.save("cadastros.xlsx")
|
|
|
|
if __name__ == '__main__':
|
|
export_cadastros_to_excel()
|