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 Thoughts on “Desenvolvimento de arquivos OpenXML (Office 2007) com Delphi

  1. António Carlos Leal on January 22, 2009 at 6:53 pm said:

    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 on January 23, 2009 at 2:26 am said:

    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 on August 25, 2011 at 3:42 pm said:

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

  4. bsonnino on August 25, 2011 at 4:00 pm said:

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

    Bruno

  5. Muito obrigado, Bruno.

  6. williamson de lima santos on June 6, 2013 at 4:32 pm said:

    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.

     

  7. bsonnino on June 6, 2013 at 4:50 pm said:

    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

  8. Rodrigo on July 25, 2013 at 6:55 am said:

    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

  9. bsonnino on July 25, 2013 at 7:27 am said:

    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

Your email address will not be published. Required fields are marked *

Post Navigation