none
Importar Arquivo Excel exportado por OpenXml RRS feed

  • Pergunta

  • Galera, alguém pelo amor pode me ajudar? na hora de importar um arquivo excel xlsx, ele da um erro de "a tabela externa não está no formato esperado", o arquivo está sendo exportado via openXml.

    Segue connectionString (Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 xml;HDR=YES;IMEX=1\";", opnDialog.FileName)

    Aplicação Desktop.

    sábado, 24 de janeiro de 2015 00:00

Respostas

  • Jefferson,

    Tivemos vários problemas onde trabalho com a leitura de arquivos .xlsx via OleDb. Ao menos no nosso caso, passamos a realizar esse tipo de atividade a partir do framework Open XML SDK. Essa biblioteca é gratuita e disponibilizada pela própria Microsoft. O único problema, porém, é que você não fará mais a leitura via ADO.NET.

    Se quiser mais informações sobre o Open XML SDK, segue um link de um artigo que escrevi tempos atrás a respeito do mesmo:

    http://www.devmedia.com.br/excel-e-open-xml-sdk-gerando-novas-planilhas-xlsx-a-partir-de-templates/25854

    Eu acredito que o erro que você está enfrentando seja pelo fato de existirem linhas ou colunas a mais do que o esperado na planilha que se está lendo. Isto acontece muitas vezes quando alguém por acidente digita em uma célula não preenchida e apaga manualmente o mesmo na sequência. Uma solução neste caso, seria selecionar todas as colunas e linhas fora dos limites dos dados da tabela, efetuando um novo teste na sequência.

    Espero ter ajudado.

    Abs

    sábado, 24 de janeiro de 2015 12:28
  • Resolvi meu problema, muito fácil trabalhar com ExcelReader!
    segunda-feira, 26 de janeiro de 2015 23:27

Todas as Respostas

  • Jefferson,

    Tivemos vários problemas onde trabalho com a leitura de arquivos .xlsx via OleDb. Ao menos no nosso caso, passamos a realizar esse tipo de atividade a partir do framework Open XML SDK. Essa biblioteca é gratuita e disponibilizada pela própria Microsoft. O único problema, porém, é que você não fará mais a leitura via ADO.NET.

    Se quiser mais informações sobre o Open XML SDK, segue um link de um artigo que escrevi tempos atrás a respeito do mesmo:

    http://www.devmedia.com.br/excel-e-open-xml-sdk-gerando-novas-planilhas-xlsx-a-partir-de-templates/25854

    Eu acredito que o erro que você está enfrentando seja pelo fato de existirem linhas ou colunas a mais do que o esperado na planilha que se está lendo. Isto acontece muitas vezes quando alguém por acidente digita em uma célula não preenchida e apaga manualmente o mesmo na sequência. Uma solução neste caso, seria selecionar todas as colunas e linhas fora dos limites dos dados da tabela, efetuando um novo teste na sequência.

    Espero ter ajudado.

    Abs

    sábado, 24 de janeiro de 2015 12:28
  • Muito obrigado pela resposta Renato!!

    Acho que não é esse o problema pois a aplicação lê um arquivo txt, de acordo com os padrões que defini no programa gera um excel, porém agora preciso que esse excel seja lido novamente e mostrado numa grid.

    Estou tentar usar uma referencia .Net chamado Excel reader agora, porém não manipulo muito bem essa referencia ainda.

    Vou tentar ler o artigo que me passou e ver no que dá, reparei que no artigo não existe o tópico de como ler o arquivo, e sim só de como exportar, teria algum exemplo?

    Abs

    segunda-feira, 26 de janeiro de 2015 00:37
  • Sim Jefferson, o artigo foi sobre escrita.

    Até anotei nas minhas coisas. Assim que sobrar um tempo, vou escrever um artigo descrevendo a operação inversa (leitura).

    De qualquer forma, há referências sobre isso na internet. Se realmente vc optar por esse caminho, certamente chegará a uma solução.

    segunda-feira, 26 de janeiro de 2015 00:40
  • Resolvi meu problema, muito fácil trabalhar com ExcelReader!
    segunda-feira, 26 de janeiro de 2015 23:27