Jump to content

Arquivo xlsx, criado pelo sistema, não abre


porter

Postagens Recomendadas

Olá pessoal, essa rotina cria um arquivo com a extensão xlsx, mas quando clico nesse arquivo, fora do sistema, para abri-lo

aparece essa mensagem: O Excel não pode abrir o arquivo 'dados.xlsx' porquê o formato ou a extensão de arquivo não é valida. Verifique se o arquivo não está corrompido e se a extensão corresponde ao formato do arquivo.

Porquê o arquivo não abre, é um arquivo xlsx do Excel

caminho = "c:\\teste\\dados.xlsx";

 using (StreamWriter sw = File.CreateText(caminho))
 {
     sw.WriteLine("Testando");
     // PULA UMA LINHA
     sw.WriteLine("");
     sw.WriteLine("Primeira linha do teste");
     sw.WriteLine("Segunda linha do teste" + "\t" + "Mais uma coluna");
 }

Windows Form, C#

Obrigado.

  • Curtir 1
Link to comment
Compartilhe em outros sites

  • 4 months later...

Olá Porter, boa tarde

Esse problema está ocorrendo porque você está salvando um arquivo sem os metadados necessários de um arquivo xlsx, que é proprietário da Microsoft.

Repara que se você tentar abrir ele com o notepad, vai funcionar, porém para que ele seja um arquivo funcional xlsx, é necessário que você o crie a partir de uma biblioteca.

A primeira necessidade seria baixar e adicionar a biblioteca no ínício do seu código

using OfficeOpenXml

Logo após você selecionar o caminho onde quer salvar os dados, é necessário adicionar as linhas e salva-las

            FileInfo novoArquivo = new FileInfo(caminho);

            using (ExcelPackage pacote = new ExcelPackage(novoArquivo))
            {
                ExcelWorksheet planilha = pacote.Workbook.Worksheets.Add("Planilha1");

                planilha.Cells["A1"].Value = "Testando";
                planilha.Cells["A2"].Value = "";
                planilha.Cells["A3"].Value = "Primeira linha do teste";
                planilha.Cells["A4"].Value = "Segunda linha do teste";
                planilha.Cells["B4"].Value = "Mais uma coluna";

                pacote.Save();
            }

Este código cria um arquivo Excel no caminho especificado, adiciona uma planilha chamada "Planilha1" e escreve alguns dados nela. Certifique-se de adicionar a referência ao EPPlus em seu projeto através do NuGet. Você pode fazer isso procurando por "EPPlus" na janela de gerenciamento de pacotes do Visual Studio.

A documentação do OfficeOpenXml pode ser visto aqui

Bons estudos!

  • Ajudou! 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...