Pergunta

Eu tenho um modelo no formato Word (docx) e deseja substituir alguns espaços reservados neste modelo com os meus próprios dados, você sabe onde eu posso encontrar as classes certas para este projeto? Seria bom para mim saber o namespace. Há algum aulas mais recentes para lidar com documentos do Word no formato docx (xml) do que as classes COM? Obrigado por todas as suas respostas, espero que alguém pode me ajudar com o meu problema.

cumprimenta

Sebastian

Foi útil?

Solução

Os novos formatos de escritório (docx, xlsx, etc) são arquivos zip que contêm uma coleção de arquivos XML. Com isso em mente você tem um par de abordagens.

  1. Você pode usar o SDK Open XML localizado em http://www.microsoft.com/downloads/details.aspx?FamilyId=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&displaylang=en

  2. Você pode descompactar o arquivo docx, fazer uma pesquisa e substituir por seus símbolos, e zip-lo de volta.

Existe um site em openxmldeveloper.org que é apenas para esse tipo de coisa. Além disso, tenha em mente que eles já estão enviando uma versão beta 2 do SDK.

Outras dicas

Eric White tocou exatamente sobre este assunto em uma blog artigo detalhando um programa destinado a trechos de código de validação embutidas em docx arquivos . Além de apenas que o artigo Eu recomendo ler sua série sobre Office Open XML e C # .

Eu usei esta:

= IEnumerable Teste2 do elemento em body.Elements () onde element.InnerText.Contains ( "SDT") selecionar elemento;

A propósito usando xml Eu encontrei esta solução que localiza todos os SDT-nós

 NameTable nt = new NameTable();
        XmlNamespaceManager nsManager = new XmlNamespaceManager(nt);
        nsManager.AddNamespace("w", wordmlNamespace);

        XmlDocument xDoc = new XmlDocument();
        xDoc.Load(doc.MainDocumentPart.GetStream());

        XmlNodeList nodeList = xDoc.SelectNodes(@"./w:document/w:body//w:sdt", nsManager);

Ele funciona, mas não o Open XML Format SDK 2.0 me dar qualquer chance para isso?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top