Pergunta

Preciso elaborar um pequeno projeto para geração de relatórios excel em .NET, que serão enviados aos usuários para utilização.

Os relatórios do Excel conterão tabelas dinâmicas.

Não tenho muita experiência com eles, mas consigo pensar em três alternativas de implementação:

  1. Defina uma consulta para ele, preencha-o e envie-o desconectado.Desta forma o usuário poderá agrupar valores e brincar um pouco, mas não conseguirá atualizar os dados.
  2. Gere um pequeno banco de dados de acesso e envie junto com o arquivo excel, conecte-se a ele.
  3. Copie os dados para o Excel (talvez em alguma outra planilha) e conecte-se aos dados lá.Isso tornará o arquivo Excel muito grande, eu acho.

Qual seria a melhor alternativa em relação ao desempenho versus usabilidade?Existe outra alternativa que eu não conheço?

Foi útil?

Solução

Por se tratar de um projeto pequeno, você pode contar com o Excel para armazenamento de dados do aplicativo.Será mais fácil de desenvolver e testar e mais simples de manter.

Outras dicas

@Espo

Não, os usuários não terão acesso à fonte de dados original, por isso estou pensando em criar um pequeno banco de dados de acesso com o subconjunto de dados necessário para o relatório

Você precisa manter os dados "offline"?

O que costumo fazer nesses casos em que você tem muitos dados é usar um sql-server existente já na rede.Se for para ser usado no escritório, os usuários farão isso online de qualquer maneira.

Apenas lembre-se de criar um usuário dedicado com acesso restrito no sql-server para este relatório e não armazene a senha "sa" no arquivo excel.

Se "enviado aos usuários" significa usuários fora do escritório, essa não seria uma boa solução.Se for esse o caso, tentaria incluir os dados na planilha Excel e ver quão grande eles se tornariam.Essa será a solução mais amigável se o arquivo não for muito grande.

Além disso, encontrei isto online: Diferentes maneiras de usar consultas da Web no Microsoft Office Excel 2003.Isso permitirá que você armazene os dados em um site público (com uma URL secreta, se desejar) e depois deixe o Excel extrair os dados.Dessa forma, você não precisa preencher a caixa de entrada dos usuários com arquivos grandes e também pode atualizar os dados posteriormente sem reenviar o arquivo Excel.

A opção 3 parece a mais simples e eu teria pensado que o Excel não é mais eficiente que o Access para armazenar os dados.O problema com dois arquivos é fazer com que os links entre eles funcionem mesmo em locais diferentes.

@paulmorriss

Talvez...o problema com isso é que existem limitações quanto à quantidade de dados que uma única planilha pode conter...Estou pensando na opção 2, a menos que alguém me diga que não é uma boa ideia em relação ao desempenho

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top