An open API service indexing awesome lists of open source software.

https://github.com/hedriss10/spreed-sheets

"SpreedSheets File Processor with zip"
https://github.com/hedriss10/spreed-sheets

flask javascript jinja2 python

Last synced: 3 months ago
JSON representation

"SpreedSheets File Processor with zip"

Awesome Lists containing this project

README

          

# File Processor with Chunking and ZIP Export

Este projeto é uma aplicação Flask que permite fazer o upload de arquivos CSV ou XLSX, processá-los em chunks (partes menores) e gerar um arquivo ZIP contendo esses chunks. O projeto também oferece a opção de remover dados nulos (NA) durante o processamento.

## Funcionalidades

- **Upload de Arquivo**: Permite o upload de arquivos CSV ou XLSX.
- **Divisão em Chunks**: Divide o arquivo em partes menores (chunks) com base no tamanho definido pelo usuário.
- **Remover Dados Nulos**: Permite remover linhas com valores faltantes (NA).
- **Exportação em ZIP**: Gera um arquivo ZIP contendo todos os chunks em formato CSV.
- **Interface de Usuário**: Interface simples em HTML para interação com o usuário.

## Tecnologias Usadas

- **Flask**: Framework web para criar a aplicação.
- **Pandas**: Para manipulação e processamento de dados.
- **NumPy**: Para dividir os dados em chunks.
- **Openpyxl**: Para ler arquivos XLSX.
- **Chardet**: Para detectar a codificação do arquivo.
- **Zipfile**: Para compactar os arquivos em formato ZIP.
- **Rich**: Para exibir logs de forma mais legível no console.

## Instalação

1. Clone o repositório:

```bash
git clone https://github.com/hedriss10/spreed-sheets.git
cd seu_repositorio
```

2. Crie um ambiente virtual (opcional, mas recomendado):

```bash
python -m venv venv
```

3. Ative o ambiente virtual:

- No Windows:
```bash
venv\Scripts\activate
```
- No Linux/macOS:
```bash
source venv/bin/activate
```

4. Instale as dependências:

```bash
pip install -r requirements.txt
```

5. Para rodar a aplicação:

```bash
python app.py
```

6. Acesse a aplicação em [http://127.0.0.1:5000](http://127.0.0.1:5000) no seu navegador.

## Como Usar

1. Na página inicial, faça o upload de um arquivo CSV ou XLSX.
2. Defina o tamanho do chunk (quantas linhas cada parte do arquivo terá).
3. Marque a opção para remover dados nulos, se desejar.
4. Clique em "Enviar" para processar o arquivo.
5. O arquivo será processado e um arquivo ZIP contendo os chunks será gerado e oferecido para download.

## Estrutura de Diretórios

```bash
/
├── app.py # Arquivo principal da aplicação
├── output_files/ # Diretório onde os arquivos processados são armazenados
├── requirements.txt # Arquivo com as dependências do projeto
├── templates/ # Diretórios dos templates HTML
│ └── index.html # Página principal
└── static/ # Arquivos estáticos (CSS, JS, imagens)
```

## Dependências

As principais bibliotecas utilizadas são:

- `Flask`: Framework web para Python.
- `Pandas`: Biblioteca para análise de dados.
- `NumPy`: Biblioteca para operações numéricas.
- `Openpyxl`: Leitura de arquivos XLSX.
- `Chardet`: Detecção automática de codificação de arquivos.
- `Zipfile`: Para compressão de arquivos.
- `Rich`: Para logs bonitos no console.

## Contribuições

Contribuições são bem-vindas! Se você encontrou um erro ou deseja adicionar uma nova funcionalidade, sinta-se à vontade para criar uma *issue* ou enviar um *pull request*.

1. Faça um fork deste repositório.
2. Crie uma branch para sua nova funcionalidade (`git checkout -b minha-nova-funcionalidade`).
3. Faça as modificações necessárias e commit (`git commit -am 'Adiciona nova funcionalidade'`).
4. Envie para o repositório (`git push origin minha-nova-funcionalidade`).
5. Abra um pull request.

## Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo [LICENSE](LICENSE) para mais detalhes.

---

Esse é um README simples e funcional para o seu projeto. Ele fornece as informações essenciais sobre como instalar, usar e entender o projeto, além de explicar o que ele faz e como os outros podem contribuir. Se houver mais detalhes ou especificidades sobre o projeto, você pode incluir ou ajustar conforme necessário.