Skip to main content

📊 Facilite a leitura, manipulação, conversão, validação e exportação de arquivos Excel e CSV com Python.

Project description

📚 excel-toolkit-for-py - Manipulação e Conversão Avançada de Arquivos Excel

📊 excel-toolkit-for-py é um pacote Python completo que facilita a leitura, manipulação, validação e conversão de arquivos Excel e CSV, utilizando pandas e openpyxl. Ideal para automações robustas envolvendo planilhas!


Principais Funcionalidades

  • 📥 Leitura de arquivos Excel (.xlsx) e CSV (.csv).
  • 📤 Exportação de DataFrames para Excel e CSV.
  • 🔄 Conversão entre Excel e JSON.
  • 🔗 Junção e divisão de arquivos Excel.
  • 🛡️ Validações automatizadas de dados e esquemas.
  • 📊 Suporte a múltiplas planilhas.
  • Integração com pytest para testes automatizados.
  • 🔒 Suporte a arquivos Excel protegidos por senha.
  • 📝 Validação de células vazias.
  • 🎨 Formatação condicional.
  • 📈 Manipulação de fórmulas e gráficos.
  • 📦 Exportação para múltiplos formatos (JSON, XML, HTML, PDF).

Instalação

Instale o pacote via PyPI:

pip install excel_toolkit_for_py

💡 As dependências pandas, openpyxl, msoffcrypto-tool, xlrd, xlwt, weasyprint, jinja2, numpy e scipy são instaladas automaticamente.


🚀 Como Usar

📥 Leitura de Arquivos Excel e CSV

from excel_toolkit_for_py.reader import read_excel, read_csv, get_sheet_names, get_dict_sheets

sheet_names = get_sheet_names("dados.xlsx")
print(sheet_names) # ['Sheet1', 'Sheet2']

# Retorna um dicionário com todas as abas
sheet_names = get_dict_sheets("dados.xlsx", sheet_name=None)
print(sheet_names)

# Lendo um arquivo Excel
df_excel = read_excel("dados.xlsx", sheet_name="Sheet1")
print(df_excel.head(10)) # Retorna os 10 primeiros registros
print(df_excel.tail(8)) # Retorna os 8 últimos registros
print(df_excel.to_string()) # Converte a planilha toda para string
print(df_excel) # Todos os dados, porém se a planilha for grande, trunca

# Lendo um arquivo CSV
df_csv = read_csv("dados.csv")
print(df_csv.head())

📤 Exportação de DataFrames para Excel e CSV

from excel_toolkit_for_py.writer import write_excel, write_csv
import pandas as pd

df = pd.DataFrame({
    "Nome": ["Alice", "Bob", "Carlos"],
    "Idade": [25, 30, 22]
})

write_excel(df, "saida.xlsx", sheet_name="Usuarios")
write_csv(df, "saida.csv")

📤 Converter uma lista em Excel

from excel_toolkit_for_py.writer import write_list_to_excel

data = [["Nome", "Idade", "Cidade"],
         ["Alice", 25, "São Paulo"],
         ["Carlos", 30, "Rio de Janeiro"],
         ["Mariana", 22, "Belo Horizonte"]]

write_list_to_excel("dados.xlsx", data)
print("Arquivo Excel criado com sucesso!")

🔄 Conversão: Excel para JSON e vice-versa

from excel_toolkit_for_py.conversions import excel_to_json, json_to_excel

# Excel -> JSON
json_data = excel_to_json("dados.xlsx")
print(json_data)

# JSON -> Excel
json_to_excel(json_data, "novo_dados.xlsx")

🛡️ Validação de Estrutura e Dados

from excel_toolkit_for_py.validations import validate_excel_schema

schema = {"Nome": str, "Idade": int}
validacao = validate_excel_schema("dados.xlsx", schema)
print("✅ Validação bem-sucedida!" if validacao else "❌ Validação falhou.")

🔒 Trabalhando com Arquivos Protegidos

from excel_toolkit_for_py.advanced_features import read_protected_excel, protect_excel

# Ler um arquivo protegido
df = read_protected_excel("arquivo_protegido.xlsx", password="minha_senha")

# Proteger um arquivo
protect_excel("arquivo.xlsx", password="nova_senha")

📝 Validação de Células Vazias

from excel_toolkit_for_py.advanced_features import validate_empty_cells

# Validar células vazias
resultado = validate_empty_cells(df, threshold=0.1)
print(f"Células vazias: {resultado['empty_cells']}")
print(f"Colunas com muitas células vazias: {resultado['columns_above_threshold']}")

🎨 Formatação Condicional

from excel_toolkit_for_py.advanced_features import apply_conditional_formatting

# Aplicar formatação condicional
regras = [{
    'range': 'A1:C10',
    'type': 'cellIs',
    'operator': '>',
    'formula': '30',
    'format': {
        'fill': 'FF0000',
        'font': {'bold': True}
    }
}]

apply_conditional_formatting("arquivo.xlsx", regras)

📈 Manipulação de Fórmulas e Gráficos

from excel_toolkit_for_py.advanced_features import extract_formulas, add_chart

# Extrair fórmulas
formulas = extract_formulas("arquivo.xlsx")
print(f"Fórmulas encontradas: {formulas}")

# Adicionar gráfico
add_chart(
    file_path="arquivo.xlsx",
    chart_type="bar",
    data_range="A1:B10",
    title="Meu Gráfico"
)

📦 Exportação para Múltiplos Formatos

from excel_toolkit_for_py.exporters import to_json, to_xml, to_html, to_pdf
import pandas as pd

# Criar dados de exemplo
df = pd.DataFrame({
    "Nome": ["Alice", "Bob", "Carlos"],
    "Idade": [25, 30, 22],
    "Cidade": ["São Paulo", "Rio", "BH"]
})

# Exportar para JSON
to_json(df, "dados.json")

# Exportar para XML
to_xml(df, "dados.xml")

# Exportar para HTML (com template opcional)
to_html(df, "dados.html", template_path="template.html")

# Exportar para PDF (com template opcional)
to_pdf(df, "dados.pdf", template_path="template.html")

Template HTML de exemplo (template.html):

<!DOCTYPE html>
<html>
<head>
    <title>Relatório de Dados</title>
    <style>
        table { width: 100%; border-collapse: collapse; }
        th, td { padding: 8px; text-align: left; border: 1px solid #ddd; }
        th { background-color: #f2f2f2; }
        tr:nth-child(even) { background-color: #f9f9f9; }
    </style>
</head>
<body>
    <h1>Relatório de Dados</h1>
    {{ data.to_html(index=False, classes='table') }}
</body>
</html>

📊 Análise de Dados: Estatísticas, Outliers, Correlações e Pivot Table

from excel_toolkit_for_py.data_analysis import (
    calculate_basic_stats, detect_outliers, calculate_correlations, create_pivot_table
)
import pandas as pd

# Exemplo de DataFrame
sample_df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5, 100],  # Inclui outlier
    'B': [10, 20, 30, 40, 50, 60],
    'C': ['a', 'b', 'c', 'd', 'e', 'f'],
    'D': [1.1, 2.2, 3.3, 4.4, 5.5, 6.6]
})

# Estatísticas básicas
stats = calculate_basic_stats(sample_df)
print(stats)

# Detecção de outliers
outliers = detect_outliers(sample_df, method='zscore', threshold=2.0)
print(outliers)

# Correlações
corr = calculate_correlations(sample_df)
print(corr)

# Tabela dinâmica (pivot table)
pivot = create_pivot_table(
    sample_df,
    index='C',
    values=['A', 'B'],
    aggfunc='mean'
)
print(pivot)

🧪 Testes

Execute os testes unitários com pytest:

pytest tests/ --maxfail=1 --disable-warnings -v

🏗 Estrutura do Projeto

excel_toolkit/
│
├── excel_toolkit_for_py/                # 📦 Código do pacote
│   ├── __init__.py
│   ├── reader.py            # 📥 Funções de leitura
│   ├── writer.py            # 📤 Funções de exportação
│   ├── conversions.py       # 🔄 Funções de conversão Excel <-> JSON
│   ├── validations.py       # 🛡️ Funções de validação de dados
│   ├── advanced_features.py # 🔧 Funções avançadas
│   ├── data_analysis.py     # 📊 Funções de análise de dados
│   ├── exporters.py         # 📤 Funções de exportação
│   ├── utils.py             # 🛠️ Funções utilitárias
│
├── tests/                   # 🧪 Testes unitários
│   ├── test_reader.py
│   ├── test_writer.py
│   ├── test_conversions.py
│   ├── test_validations.py
│   ├── test_advanced_features.py
│   ├── test_data_analysis.py
│   ├── test_exporters.py
│
├── setup.py                 # ⚙️ Configuração para PyPI
├── pyproject.toml           # 📦 Configuração moderna
├── README.md                # 📚 Documentação do projeto
├── LICENSE                  # 📜 Licença MIT
└── MANIFEST.in              # 📋 Inclusão de arquivos extras

📝 Licença

Distribuído sob a Licença MIT. Consulte o arquivo LICENSE para mais detalhes.


👨‍💻 Autor

Desenvolvido por Roberto Lima 🚀✨


💬 Contato


Gostou do projeto?

Deixe uma ⭐ no repositório e compartilhe com a comunidade! 🚀✨

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

excel_toolkit_for_py-1.4.0.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

excel_toolkit_for_py-1.4.0-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file excel_toolkit_for_py-1.4.0.tar.gz.

File metadata

  • Download URL: excel_toolkit_for_py-1.4.0.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.7

File hashes

Hashes for excel_toolkit_for_py-1.4.0.tar.gz
Algorithm Hash digest
SHA256 4c8466c5c4197c9b8d3715eae0b9d3be948e340ec3b3dacbc1f49f0c0946cde9
MD5 c3068f30fd1eacc881f4462fbbccaedc
BLAKE2b-256 f763fee20793af0192ab3df14687021bcd94f45c02c00b8136fa9ae86062b731

See more details on using hashes here.

File details

Details for the file excel_toolkit_for_py-1.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for excel_toolkit_for_py-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5984c51520d90a1db7651b2e900761a5ee36e90145d94ce69f91c16fbec07283
MD5 94bdba3fd9289596a1f1b4b4a4a15ab2
BLAKE2b-256 92ba8fb4d483de92dc318f2b489447924d9c9b9597591f5d7e93de87e0cc823d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page