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
Bruno
Excelente o seu arquivo.
Não encontrei o código dos seguintes métodos no artigo
LimpaXML;
CriaCabecalho;
qual a função deles?
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
O link do artigo está fora do ar. Você teria outro link para disponibilizar ou o material do artigo?
Vou ver o que aconteceu no site do MSDN. Se tiverem tirado do ar, publico aqui, ok?
Bruno
O artigo foi recolocado no ar, o novo link é http://www.microsoft.com/brasil/msdn/tecnologias/Office/Open_XML_Delphi.mspx
Muito obrigado, Bruno.
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.
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
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
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.