Desenvolvimento de arquivos OpenXML (Office 2007) com Delphi

Uma das grandes mudanças no Office 2007 está nos arquivos que são criados: o padrão de arquivos mudou radicalmente. Os novos arquivos usam tecnologia aberta, sendo arquivos zip contendo múltiplos arquivos XML. Para demonstrar que não é necessário usar APIs proprietárias nem componentes especiais, escrevi um artigo que mostra como acessar os arquivos OpenXML com Delphi. Neste artigo, mostro como é possível ler, modificar ou mesmo criar arquivos OpenXML usando componentes gratuitos. Vale a pena conferir em http://www.microsoft.com/brasil/msdn/tecnologias/Office/Open_XML_Delphi.mspx

10 Comments

  1. António Carlos Leal :

    Jan 22, 2009 6:53 pm | Reply

    Bruno
    Excelente o seu arquivo.
    Não encontrei o código dos seguintes métodos no artigo

    LimpaXML;
    CriaCabecalho;

    qual a função deles?

  2. bsonnino :

    Jan 23, 2009 2:26 am | Reply

    LimpaXML limpa o XML:

    procedure TMainFrm.LimpaXML;
    begin
    XMLDocument1.Active := False;
    XMLDocument1.XML.Text := ”;
    XMLDocument1.Active := True;
    end;

    CriaCabecalho cria o cabeçalho do XML:

    procedure TMainFrm.CriaCabecalho;
    begin
    XMLDocument1.Options := [doNodeAutoIndent];
    XMLDocument1.Active := True;
    // Cabeçalho
    XMLDocument1.Encoding := ‘UTF-8’;
    XMLDocument1.Version := ‘1.0’;
    XMLDocument1.StandAlone := ‘yes’;
    end;

    Bruno

  3. Matheus :

    Aug 25, 2011 3:42 pm | Reply

    O link do artigo está fora do ar. Você teria outro link para disponibilizar ou o material do artigo?

  4. bsonnino :

    Aug 25, 2011 4:00 pm | Reply

    Vou ver o que aconteceu no site do MSDN. Se tiverem tirado do ar, publico aqui, ok?

    Bruno

  5. bsonnino :

    Sep 19, 2011 2:01 pm | Reply

    O artigo foi recolocado no ar, o novo link é http://www.microsoft.com/brasil/msdn/tecnologias/Office/Open_XML_Delphi.mspx

  6. Matheus :

    Sep 29, 2011 8:27 am | Reply

    Muito obrigado, Bruno.

  7. williamson de lima santos :

    Jun 6, 2013 4:32 pm | Reply

    Bruno, ja li e reli varias vezes o seu artigo sobre open xml e delphi. Estou URGENTEMENTE NECESSITANDO de gerar planilhas excel usando o mesmo procedimento que usou para o word com open xml da microsoft. Voce tem um exemplo detalhado como aquele do word mas no meu caso é para criar arquivos excel com diversas planilhas em uma pasta de trabalho?

    Estou sob uma pressão grande no trabalho para resolver isso e nao sei como fazer, confesso que ja estou quase desesperado sem achar a solução.

    desde ja obrigado!!!!!

    williamson.

     

  8. bsonnino :

    Jun 6, 2013 4:50 pm | Reply

    Você tem duas maneiras de fazer isso – usar um procedimento igual ao meu, mas para isso deve estudar a especificação OpenXML para criar o arquivo Excel ou então usar Office Automation.
    Esta outra maneira é mais fácil e tem muita documentação por aí (inclusive meu livro de Delphi 6 tem um capítulo sobre isso). Procure por office automation excel delphi e você encontrará diversas respostas.

    []s

    Bruno

  9. Rodrigo :

    Jul 25, 2013 6:55 am | Reply

    Não consegui criar o arquivo word apartir do seu código, me parece que a manipulação do Stream está incorreta, os arquivos sempre saem com o texto incorreto

  10. bsonnino :

    Jul 25, 2013 7:27 am | Reply

    Você está usando que versão do Delphi? Lembre-se que as versões do Delphi antes do Delphi 2009 não são Unicode, e as versões mais novas são Unicode, e isso irá mudar o arquivo que você está gerando (no caso, pode não funcionar).
    O código mostrado aqui foi criado com o Delphi 7, portanto não é Unicode. Você teria que fazer alterações para o Delphi 2009 ou mais novo – inclusive os componentes de XML e Zip são nativos nas versões mais novas.

Leave a Reply


XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>