Partilhar via


Resolver problemas Word suplementos

Este artigo aborda problemas de resolução de problemas exclusivos do Word. Utilize a ferramenta de comentários no final da página para sugerir outros problemas que podem ser adicionados a este artigo.

Todos os intervalos selecionados não são reconhecidos

Se forem efetuadas seleções não contíguas, a API de Word só funciona no último intervalo contíguo na seleção. Um caso inesperado é quando seleciona uma coluna numa tabela e, em seguida, chama, por exemplo, Document.getSelection, apenas a célula final na seleção é devolvida pela API. Embora a seleção de uma coluna pareça contígua, a API reconhece-a como uma seleção não contígua (por exemplo, uma célula por linha).

Para saber mais geralmente sobre como fazer seleções não incontigáuas, consulte Como selecionar itens que não estão ao lado uns dos outros.

As anotações não funcionam

Se as APIs de anotação não estiverem a funcionar, pode ser porque não está a utilizar uma subscrição do Microsoft 365. Se estiver a utilizar uma licença de compra única, pode ser por isso que estas APIs não estão a funcionar para si.

As APIs de anotação dependem de um serviço que requer uma subscrição do Microsoft 365. Por conseguinte, verifique se está a executar o suplemento no Word ligado a uma licença de subscrição do Microsoft 365 antes de depurar mais.

Para obter mais informações sobre este problema, veja Problema 4953 do GitHub.

É por predefinição que o método Body.insertFileFromBase64 exclui qualquer cabeçalho ou rodapé que estava no ficheiro de origem.

Para incluir cabeçalhos ou rodapés do ficheiro de origem, utilize Document.insertFileFromBase64 como alternativa.

Não é possível utilizar o Mixed para definir uma propriedade

Várias enumerações no Word oferecem "Misto" como um valor válido. No entanto, o valor pode ser devolvido principalmente quando obtém uma propriedade ou faz uma chamada à API get*. Isto deve-se ao facto de "Misto" significar que são aplicadas várias opções à seleção atual. Se tentar definir a opção como "Misto", não é claro qual o valor real que deve ser aplicado à seleção.

Por exemplo, digamos que está a trabalhar com os limites à volta de uma secção de texto. Cada limite pode ser definido para uma largura diferente. Se o limite superior for "Pt025" (ou seja, 0,25 pontos), o limite inferior é "Nenhum" e os limites esquerdo e direito são "Pt050" (ou seja, 0,50 pontos), quando obtém a largura dos limites, é devolvido "Misto". Se quiser alterar a largura dos limites, chame a API set em cada limite com um valor de enumeração diferente de mixed.

Este comportamento também se aplica a valores de enumeração como "Desconhecido".

Obter uma GeneralException ao trabalhar com estilos

Se os utilizadores estiverem a atingir uma Exceção Geral quando o suplemento chama Document.insertFileFromBase64 ou APIs de Estilo, poderá ser que esses utilizadores estejam a exceder os limites impostos pela aplicação Word. Para saber mais sobre estes limites, veja Limitações e especificações dos parâmetros operacionais no Word.

O esquema quebra ao utilizar insertHtml enquanto o cursor está no controlo de conteúdo no cabeçalho

Este problema pode ocorrer quando são cumpridas as três condições seguintes.

  1. Tenha, pelo menos, um controlo de conteúdo no cabeçalho e, pelo menos, um no rodapé do Word documento.
  2. Certifique-se de que o cursor está dentro de um controlo de conteúdo no cabeçalho.
  3. Chame insertHtml para definir um controlo de conteúdo no rodapé.

Em seguida, o rodapé é misturado inesperadamente com o cabeçalho. Para evitar esta situação, limpe o controlo de conteúdo no rodapé antes de o definir, conforme mostrado no seguinte exemplo de código.

await Word.run(async (context) => {
    // Credit to https://github.com/barisbikmaz for this version of the workaround.
    // For more information, see https://github.com/OfficeDev/office-js/issues/129.

    // Let's say there are 2 content controls in the header and 1 in the footer.
    const contentControls = context.document.contentControls;
    contentControls.load();

    await context.sync().then(function () {
        // Clear the 2 content controls in the header.
        contentControls.items[0].clear(); 
        contentControls.items[1].clear();

        // Clear the control control in the footer then update it.
        contentControls.items[2].clear();
        contentControls.items[2].insertHtml('<p>New Footer</p>', 'Replace');
    });
});

Formatação perdida da última marca de lista numa lista ou último parágrafo

Se a formatação da última marca de lista numa lista ou último parágrafo for perdida no corpo ou intervalo especificado, marcar se estiver a utilizar Body.insertFileFromBase64 ou Range.insertFileFromBase64. Em caso afirmativo, atualize o código para utilizar Document.insertFileFromBase64 .

Significado dos valores de propriedade nulos na resposta

nulltem implicações especiais nas APIs javaScript Word. É utilizado para representar valores predefinidos ou sem formatação.

As propriedades de formatação, como a cor , irão conter null valores na resposta quando existirem valores diferentes no intervalo especificado. Por exemplo, se você recuperar um intervalo e carregar sua propriedade range.font.color:

  • Se todo o texto no intervalo tiver a mesma cor do tipo de letra, range.font.color especifica essa cor.
  • Se houver várias cores de fonte dentro do intervalo, range.font.color será null.

O meu suplemento já não consegue encontrar a janela de Word correta

O Microsoft Word, tal como outras aplicações do Windows, utiliza uma hierarquia de janelas para apresentar documentos e IU aos utilizadores. Estas janelas podem ser identificadas por alças de janela ou nomes de classes. A partir da Versão 2502 do Office (Compilação 18526.20118), uma das janelas da hierarquia do Word foi removida.

É possível que o suplemento Word tenha uma dependência rígida na hierarquia de janelas anterior do Word, pelo que falha ou já não funciona corretamente. Para obter um problema de exemplo, consulte Possivelmente atualizações do Microsoft 365 Office Apps que falham no meu Suplemento Word. Recomendamos que os programadores não dependam de uma estrutura hierárquica de janela específica. Em vez disso, a documentação de orientação atual é procurar o nome da classe de uma janela. Para localizar a janela de Word de nível superior, procure o nome da classe "OpusApp". Para localizar a janela que apresenta um documento Word aberto, procure o nome da classe "_WwG".

Segue-se um exemplo da hierarquia de janelas Word anterior.

Hierarquia de janelas Word anterior.

Segue-se um exemplo da nova hierarquia de janelas. Tenha em atenção que a janela intermédia com o nome da classe "_WwF" já não está presente.

Nova hierarquia de janela Word.

Pode utilizar uma ferramenta de depuração como Spy++ para inspecionar a hierarquia de janelas de uma aplicação. No entanto, tenha em atenção que a hierarquia poderá mudar ainda mais no futuro.

As APIs JavaScript nativas não funcionam com Word. Tabela

O Word. O objeto de tabela é diferente de um objeto de tabela HTML. As APIs javaScript nativas utilizadas para interagir com uma tabela HTML não podem ser utilizadas para gerir um Word. Objeto de tabela. Em vez disso, tem de utilizar as APIs de Tabela disponíveis no Modelo de Objeto Word para interagir com Word. Tabela e objetos relacionados.

Da mesma forma, não utilize Word APIs JavaScript para interagir com objetos de tabela HTML.

Veja também