68 lines
2.9 KiB
C#
68 lines
2.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using OfficeOpenXml;
|
|
using PipefyAddCompanies.Core.Models;
|
|
|
|
namespace PipefyAddCompanies.Core.Services
|
|
{
|
|
public static class PlanilhaService
|
|
{
|
|
public static List<Empresa> LerPlanilha(string caminhoArquivo)
|
|
{
|
|
var empresas = new List<Empresa>();
|
|
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
|
|
|
|
using (var package = new ExcelPackage(new FileInfo(caminhoArquivo)))
|
|
{
|
|
// Verifique se há ao menos uma planilha
|
|
if (package.Workbook.Worksheets.Count == 0)
|
|
{
|
|
throw new InvalidOperationException("O arquivo Excel não contém nenhuma planilha.");
|
|
}
|
|
|
|
var worksheet = package.Workbook.Worksheets[0]; // Acessa a primeira planilha
|
|
var totalRows = worksheet.Dimension?.Rows ?? 0;
|
|
|
|
for (int row = 3; row <= totalRows; row++) // Começando de 2 para pular o cabeçalho
|
|
{
|
|
var empresa = new Empresa
|
|
(
|
|
nome: worksheet.Cells[row, 2].Text,
|
|
prospectanteEmail: worksheet.Cells[row, 3].Text,
|
|
cidade: worksheet.Cells[row, 4].Text,
|
|
estado: worksheet.Cells[row, 5].Text,
|
|
ramoAtividade: worksheet.Cells[row, 6].Text,
|
|
comentarios: worksheet.Cells[row, 7].Text,
|
|
telefoneEmpresa: worksheet.Cells[row, 8].Text,
|
|
responsavelEnergia: worksheet.Cells[row, 9].Text,
|
|
areaResponsavel: worksheet.Cells[row, 10].Text,
|
|
telefoneResponsavel: worksheet.Cells[row, 11].Text,
|
|
celularResponsavel: worksheet.Cells[row, 12].Text,
|
|
emailResponsavel: worksheet.Cells[row, 13].Text,
|
|
email2: worksheet.Cells[row, 14].Text,
|
|
ambiente: worksheet.Cells[row, 15].Text,
|
|
distribuidora: worksheet.Cells[row, 16].Text
|
|
);
|
|
|
|
// Condicional para preencher o ValorFatura somente se Distribuidora estiver preenchida
|
|
var valorFatura = worksheet.Cells[row, 17].Text;
|
|
if (!string.IsNullOrEmpty(empresa.Distribuidora) && decimal.TryParse(valorFatura, out var fatura))
|
|
{
|
|
empresa.ValorFatura = fatura;
|
|
}
|
|
|
|
// Aplicar validação de nome para remover caracteres especiais
|
|
empresa.ValidarNome();
|
|
|
|
// Adicionar empresa à lista se as condições forem atendidas
|
|
empresas.Add(empresa);
|
|
}
|
|
}
|
|
|
|
return empresas.Where(x => !string.IsNullOrEmpty(x.Nome) && x.Nome != "SMART ENERGIA").ToList();
|
|
}
|
|
}
|
|
}
|