Exportar um relatório paginado para Microsoft Excel (Construtor de Relatórios)
Aplica-se a: Microsoft Report Builder (SSRS) Power BI Report Builder Report Designer no SQL Server Data Tools
Ao trabalhar com o Power BI ou o SQL Server Reporting Services (SSRS), você pode usar a extensão de renderização do Excel para exportar relatórios paginados para o Microsoft Excel. A largura das colunas exportadas no Excel imita a largura das colunas nos relatórios. Mas você pode reestruturar os dados do relatório ou processá-los ainda mais em uma pasta de trabalho.
Este artigo discute vários aspectos do processo de exportação, como suporte do renderizador para recursos interativos e o posicionamento de dados em células. As limitações do Excel e do renderizador também são abordadas.
Formato de exportação
A extensão de renderização do Excel exporta relatórios para o formato Office Open XML. O tipo de conteúdo dos arquivos que o renderizador gera é application/vnd.openxmlformats-officedocument.spreadsheetml.sheet e a extensão do arquivo é .xlsx.
Você pode alterar algumas configurações padrão desse renderizador alterando as configurações de informações de dispositivo. Para obter mais informações, confira Configurações das informações do dispositivo para Excel.
Para obter informações sobre como exportar um relatório no formato Excel, consulte Exportar relatórios paginados (Construtor de Relatórios).
Importante
Quando você define um parâmetro de relatório do tipo String
, o usuário recebe uma caixa de texto que pode assumir qualquer valor. Se o parâmetro de relatório não estiver vinculado a um parâmetro de consulta e os valores de parâmetro estiverem incluídos no relatório, haverá um risco de segurança. Especificamente, o usuário do relatório pode inserir sintaxe de expressão, código de script ou uma URL como o valor do parâmetro. Como resultado, o usuário pode inserir um script malicioso ou um link malicioso. Se o relatório for exportado para o Excel, outros usuários poderão visualizá-lo. Se eles selecionarem o conteúdo do parâmetro renderizado, correm o risco de executar inadvertidamente um script malicioso ou ir para um site malicioso.
Para reduzir o risco de execução acidental de scripts mal-intencionados, só abra relatórios renderizados de fontes confiáveis. Para obter mais informações sobre como proteger relatórios, confira Proteger relatórios e recursos.
Limitações do Excel
O Excel impõe limitações aos relatórios exportados devido aos recursos do Excel e seus formatos de arquivo. As seguintes limitações são as mais significativas:
- A largura máxima da coluna é de 255 caracteres ou 1726,5 pontos. O processador não verifica se a largura da coluna é inferior ao limite.
- O número máximo de caracteres em uma célula é 32.767. Se esse limite for excedido, o processador exibirá uma mensagem de erro.
- A altura de linha máxima é 409 pontos. Se o conteúdo de uma linha fizer com que a altura da linha exceda 409 pontos, a célula do Excel mostrará uma quantidade parcial de texto de até 409 pontos. O restante do conteúdo da célula ainda está dentro da célula, até o máximo permitido de 32.767 caracteres.
- Como a altura máxima da linha é de 409 pontos, se a altura definida de uma célula no relatório for maior que 409 pontos, o Excel dividirá o conteúdo da célula em várias linhas.
- O número máximo de planilhas não é definido no Excel. Mas fatores externos, como memória e espaço em disco, podem fazer com que as limitações sejam aplicadas.
- Em estruturas de tópico, o Excel só permite até sete níveis aninhados.
- A disponibilidade de uma estrutura de tópicos depende da posição do item de relatório que controla a visibilidade de outro item. Uma estrutura de tópicos não está disponível nos seguintes casos:
- O item de relatório de controle não está na linha anterior ou seguinte em relação ao item que está sendo expandido ou recolhido.
- O item de relatório de controle não está na coluna do item que está sendo expandido ou recolhido.
Para obter mais informações sobre as limitações do Excel, consulte Especificações e limites do Excel.
Caixas de texto e texto
As seguintes limitações se aplicam a caixas de texto e texto:
- Valores de caixas de texto que sejam expressões não são convertidos em fórmulas do Excel. O valor da cada caixa de texto é avaliado durante o processamento de relatório. A expressão avaliada é exportada como o conteúdo de cada célula do Excel.
- Cada caixa de texto é renderizada em uma célula do Excel. Para tamanho da fonte, tipo de fonte, decoração e estilo da fonte, a formatação é suportada no texto da célula.
- O Excel não dá suporte à formatação de texto de linha sobreposta.
- O Excel adiciona um preenchimento padrão de aproximadamente 3,75 pontos à esquerda e à direita das células. Se o preenchimento de uma caixa de texto for inferior a 3,75 pontos e a caixa não for larga o suficiente para acomodar o texto, o texto poderá ser quebrado em uma nova linha no Excel. Para solucionar esse problema, aumente a largura da caixa de texto no relatório.
Imagens
As seguintes limitações também se aplicam:
- Imagens em segundo plano para itens de relatório são ignoradas porque o Excel não dá suporte a imagens em segundo plano para células individuais.
- A extensão de renderização do Excel só dá suporte à imagem de fundo do corpo do relatório. Se a imagem de fundo do corpo do relatório for exibida no relatório, a imagem será renderizada como imagem de fundo da planilha.
Retângulos
A seguinte limitação se aplica a retângulos: Retângulos em rodapés de relatório não são exportados para o Excel. Mas retângulos no corpo do relatório, células tablix e outros componentes semelhantes são renderizados como um intervalo de células do Excel.
Cabeçalhos e rodapés de relatórios
As seguintes limitações se aplicam a cabeçalhos e rodapés de relatórios:
- Os cabeçalhos e os rodapés do Excel dão suporte a um máximo de 256 caracteres, inclusive a marcação. A extensão de renderização trunca a cadeia de caracteres em 256 caracteres.
- O SSRS não dá suporte a margens em cabeçalhos e rodapés de relatório. No Excel, esses valores de margem são definidos como zero.
- Quando você imprime um relatório exportado para o Excel, as configurações da impressora podem afetar a renderização. Especificamente, se um cabeçalho ou rodapé no relatório contiver várias linhas de dados, talvez você não veja várias linhas na impressão.
- As caixas de texto em um cabeçalho ou rodapé mantêm sua formatação, mas não seu alinhamento quando são exportadas para o Excel. Os espaços à esquerda e à direita são cortados quando o relatório é renderizado no Excel, o que altera o alinhamento.
Células mescladas
A seguinte limitação se aplica à mesclagem de células: Se as células forem mescladas, o texto não será quebrado corretamente.
O renderizador do Excel é essencialmente um renderizador de layout. Seu objetivo é replicar o layout do relatório renderizado o mais próximo possível em uma planilha do Excel. Como resultado, as células podem ser mescladas na planilha para preservar o layout do relatório. As células mescladas podem causar problemas porque a funcionalidade de classificação no Excel exige que as células sejam mescladas de uma maneira específica para que a classificação funcione corretamente. Por exemplo, se você quiser classificar um intervalo de células, o Excel exigirá que cada célula mesclada no intervalo tenha o mesmo tamanho que as outras células mescladas no intervalo.
Reduzir o número de células mescladas em suas planilhas do Excel facilita a classificação das planilhas. Os pontos a seguir podem ajudá-lo a minimizar o número de células que são mescladas durante o processo de exportação.
- O motivo mais comum pelo qual as células são mescladas é que os itens não estão alinhados à esquerda ou à direita. Normalmente, você pode resolver o problema alinhando as bordas esquerda e direita de todos os itens de relatório e dando aos itens a mesma largura.
- Mesmo quando você alinha todos os itens, algumas colunas ainda são mescladas em casos raros. A conversão e o arredondamento de unidades internas durante o processo de renderização podem fazer com que as células se fundam. Na linguagem de definição de relatório (RDL), você pode especificar posições e tamanhos em várias unidades, como polegadas, pixels, centímetros e pontos. Internamente, o Excel usa pontos. Como resultado, polegadas e centímetros são convertidos em pontos durante a renderização. Para minimizar as operações de conversão durante a renderização e a possível imprecisão do arredondamento, considere especificar todas as medidas em pontos inteiros. Uma polegada tem 72 pontos.
Grupos de linhas e grupos de colunas de relatórios
Os relatórios que incluem grupos de linhas ou grupos de colunas contêm células vazias quando você os exporta para o Excel. A imagem a seguir mostra um relatório que agrupa linhas na distância de deslocamento. Cada distância do trabalho pode conter mais de um cliente.
Quando você exporta o relatório para o Excel, a distância de deslocamento diário aparece apenas em uma célula da coluna Distância de deslocamento . Ao criar o relatório, você pode alinhar o texto à parte superior, central ou inferior do grupo de linhas. Esse alinhamento determina se o valor está na primeira, no meio ou na última célula do relatório exportado. As outras células nessa coluna do grupo estão vazias. A coluna Nome , que contém nomes de clientes, não tem células vazias.
A imagem a seguir mostra o relatório após a exportação para o Excel. As células vazias são sombreadas em cinza na imagem, mas esse sombreamento não faz parte do relatório exportado.
Depois de exportar um relatório que contém grupos de linhas ou grupos de colunas para o Excel, você precisa modificar o relatório antes de exibir os dados exportados em uma Tabela Dinâmica. Você deve adicionar o valor do grupo às células das quais ele está ausente. A planilha então se torna uma tabela simples com valores em todas as células. A imagem a seguir mostra a planilha atualizada.
Se você criar um relatório com a finalidade específica de exportá-lo para o Excel para análise adicional dos dados do relatório, considere não agrupar em linhas ou colunas em seu relatório.
Renderizador do Excel
O código XML a seguir mostra o elemento para a extensão de renderização do Excel nos arquivos de configuração RSReportServer e RSReportDesigner:
<Extension Name="EXCELOPENXML" Type="Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.ExcelOpenXmlRenderer,Microsoft.ReportingServices.ExcelRendering"/>
O renderizador do Excel tem os seguintes valores e limites padrão:
Propriedade | Valor |
---|---|
Máximo de colunas por planilha | 16.384 |
Máximo de linhas por planilha | 1\.048.576 |
Número de cores permitido em uma planilha | Aproximadamente 16 milhões (cor de 24 bits) |
Arquivos compactados em ZIP | compactação em ZIP |
Família de fontes padrão | Calibri |
Tamanho da fonte padrão | 11 pontos |
Altura de linha padrão | 15 pontos |
Como o relatório define explicitamente a altura da linha, a altura da linha padrão afeta apenas as linhas que são dimensionadas automaticamente durante a exportação para o Excel.
Itens de relatório no Excel
Quando você exporta um relatório para o Excel, os seguintes componentes são renderizados como um intervalo de células do Excel: sub-relatórios, retângulos, o corpo do relatório e regiões de dados. Caixas de texto, imagens, gráficos, barras de dados, minigráficos, mapas, medidores e indicadores são renderizados em uma célula do Excel. Mas essa célula pode ser mesclada com outras células. O layout do restante do relatório determina se ocorre mesclagem.
Imagens, gráficos, minigráficos, barras de dados, mapas, medidores, indicadores e linhas são posicionados em uma célula do Excel, mas ficam no topo da grade da célula. Linhas são renderizadas como bordas de célula.
Gráficos, minigráficos, barras de dados, mapas, medidores e indicadores são exportados como imagens. Os dados que eles retratam não são exportados com eles. Os dados não estão disponíveis na pasta de trabalho do Excel, a menos que você os inclua em uma coluna ou linha em uma região de dados dentro de um relatório.
Se você quiser trabalhar com dados para gráficos, minigráficos, barras de dados, mapas, medidores e indicadores, poderá exportar o relatório para um arquivo CSV ou gerar feeds de dados compatíveis com Atom a partir do relatório. Para obter mais informações, consulte Exportar um relatório paginado para um arquivo CSV (Construtor de Relatórios) e Gerar feeds de dados de relatórios (Construtor de Relatórios).
Tamanho da página
A extensão de renderização do Excel usa as configurações de altura e largura da página para determinar as configurações de papel da planilha do Excel. O Excel tenta corresponder as configurações de propriedade PageHeight
e PageWidth
a um dos tamanhos de papel mais comuns.
Se nenhuma correspondência for encontrada, o Excel usará o tamanho de página padrão para a impressora. A orientação é definida como Portrait
se a largura da página for menor que a altura da página. Caso contrário, a orientação é definida como Landscape
.
Nomes das guias de planilha
Quando você exporta um relatório para o Excel, as quebras de página criam as páginas do relatório e cada página é exportada para uma planilha diferente. Se você fornecer um nome de página inicial para o relatório, a primeira planilha da pasta de trabalho do Excel terá esse nome. Como cada planilha em uma pasta de trabalho deve ter um nome exclusivo, um número inteiro começando em dois e incrementado em um é acrescentado ao nome da página de cada planilha. Por exemplo, se o nome da página inicial for Relatório de Vendas por Ano Fiscal, a segunda planilha será denominada Relatório de Vendas por Ano Fiscal (2). O terceiro é denominado Relatório de Vendas por Ano Fiscal (3) e assim por diante.
Se todas as páginas de relatório criadas por quebras de página fornecerem novos nomes de página, cada planilha terá o nome de página associado. Mas se esses nomes de página não forem exclusivos, as planilhas serão nomeadas da mesma forma que os nomes de página iniciais. Por exemplo, se o nome da página de dois grupos for Vendas para NW, uma guia de planilha terá o nome Vendas para NW e a outra Vendas para NW (2).
Se o relatório não fornecer um nome de página inicial ou nomes de página para quebras de página, as guias de planilha terão os nomes padrão Planilha1, Planilha2 e assim por diante.
O SSRS fornece propriedades que você pode definir para relatórios, regiões de dados, grupos e retângulos. Essas propriedades ajudam você a criar relatórios que podem ser exportados para o Excel da maneira desejada. Para obter mais informações, consulte Paginação em relatórios paginados (Microsoft Report Builder).
Propriedades do documento
O processador do Excel grava os metadados a seguir no arquivo Excel.
Propriedades do elemento de relatório | Descrição |
---|---|
Criado | Data e hora da execução do relatório como um valor ISO de data/hora. |
Autor | Autor do Relatório |
Descrição | Descrição do Relatório |
LastSaved | Data e hora da execução do relatório como um valor ISO de data/hora. |
Cabeçalhos e rodapés de página
A maneira como o cabeçalho da página é renderizado depende da configuração de informações SimplePageHeaders
do dispositivo:
- Por padrão,
SimplePageHeaders
é definido como False. Nesse caso, o cabeçalho é renderizado para a grade de células na planilha do Excel, na parte superior dessa grade. - Se
SimplePageHeaders
for definido como True, o cabeçalho será renderizado na seção de cabeçalho da planilha do Excel.
O rodapé da página é sempre renderizado na seção de rodapé da planilha do Excel, independentemente do valor da SimplePageHeaders
configuração.
Devido às limitações do Excel, as caixas de texto são o único tipo de item de relatório que pode ser renderizado nas seções de cabeçalho e rodapé do Excel.
As seções de cabeçalho e rodapé suportam um máximo de 256 caracteres, inclusive a marcação. Se esse limite for excedido, o renderizador do Excel removerá os caracteres de marcação começando no final da cadeia de caracteres de cabeçalho ou rodapé para reduzir o número total de caracteres. Se todos os caracteres de marcação forem removidos e o comprimento ainda exceder o máximo, a cadeia de caracteres será truncada a partir do final.
Configurações de SimplePageHeader
Quando a configuração de informações
SimplePageHeaders
do dispositivo é definida como False, as linhas da planilha que contêm os cabeçalhos se tornam linhas bloqueadas. Você pode congelar ou descongelar o painel no Excel.Se as configurações do Excel para impressão de títulos estiverem configuradas para imprimir essas linhas de cabeçalho, esses cabeçalhos serão impressos em todas as páginas da planilha, exceto na folha de rosto do mapa do documento.
Na janela Propriedades do Cabeçalho da Página do Construtor de Relatórios:
- Se Imprimir na primeira página não estiver selecionado, o cabeçalho não será adicionado à primeira página do relatório.
- Se a opção Imprimir na última página não estiver selecionada, o cabeçalho não será adicionado à última página do relatório.
Interatividade
Alguns elementos interativos têm suporte no Excel. As seções a seguir discutem a interatividade.
Mostrar e ocultar
Há limitações na maneira como o Excel gerencia itens de relatório ocultos e exibidos quando eles são exportados. Grupos, linhas e colunas que contêm itens de relatório que podem ser expandidos e recolhidos são renderizados como estruturas de tópicos do Excel. Mas os contornos do Excel expandem e recolhem linhas e colunas em toda a linha ou coluna. Como resultado, os itens de relatório que não devem ser recolhidos podem ser recolhidos. Além disso, os símbolos de estrutura de tópicos do Excel podem ficar confusos com contornos sobrepostos.
Para resolver esses problemas, a extensão de renderização do Excel usa as seguintes regras de estrutura de tópicos:
O item de relatório que pode ser expandido e recolhido mais próximo do canto superior esquerdo também pode ser expandido e recolhido no Excel. Outros itens de relatório que compartilham espaço vertical ou horizontal com esse item superior esquerdo não podem ser expandidos ou recolhidos no Excel.
Para determinar se uma região de dados é recolhível por linhas ou colunas, a posição de dois itens é levada em consideração:
- O item de relatório que controla a visibilidade
- A região de dados que pode ser expandida e recolhida
As regras aplicáveis dependem da posição relativa desses dois itens:
- Se o item que controla a visibilidade aparecer acima ou abaixo do item que se expande e recolhe, o item pode ser recolhido por linhas.
- Se o item que controla a visibilidade aparecer ao lado do item que se expande e recolhe, o item pode ser recolhido por colunas.
- Se o item que controla a visibilidade aparecer na mesma distância acima e ao lado do item que se expande e recolhe, o item pode ser recolhido por linhas.
Para determinar onde os subtotais automáticos são colocados no relatório renderizado, a extensão de renderização examina a primeira instância de um membro dinâmico. Se um membro estático de mesmo nível aparecer imediatamente acima dele, o membro dinâmico será considerado o subtotal. Os esboços são definidos para indicar que esses dados são dados de sumários. Se não houver irmãos estáticos de um membro dinâmico, a primeira instância da instância será o subtotal.
Devido a uma limitação do Excel, as estruturas de tópicos podem ser aninhadas apenas em até sete níveis.
Mapa do documento
Se houver rótulos de mapa de documento no relatório, um mapa de documento será renderizado como uma planilha de capa do Excel. A planilha é chamada de Mapa de documentos e está localizada na primeira posição da guia na pasta de trabalho.
A DocumentMapLabel
propriedade de um item ou grupo de relatório determina seu rótulo no mapa do documento. Os rótulos são listados na ordem em que aparecem no relatório, começando na primeira linha, na primeira coluna. Cada célula do rótulo do mapa de documento é recuada o número de níveis que aparece no relatório. Cada nível de recuo é representado colocando o rótulo em uma coluna subsequente. O Excel dá suporte a até 256 níveis de aninhamento de esboços.
O esboço de mapa de documento é renderizado como um esboço de Excel recolhível. A estrutura do esboço corresponde à estrutura aninhada do mapa de documento. O estado de expansão ou de recolhimento do esboço se inicia ao segundo nível.
O nó raiz do mapa é o nome do relatório ou seu nome de arquivo sem a extensão .rdl. Esse nome não é interativo.
O renderizador usa uma fonte Arial de 10 pontos para os links do mapa do documento.
Links de detalhamento
Um link de detalhamento que aparece em uma caixa de texto é renderizado como um hiperlink do Excel na célula na qual o texto é renderizado. Um link de detalhamento para uma imagem ou gráfico é renderizado como um hiperlink do Excel na imagem. Quando você seleciona um link de detalhamento, ele abre o navegador padrão do cliente e vai para a exibição HTML do destino.
Hiperlinks
Um hiperlink que aparece em uma caixa de texto é renderizado como um hiperlink do Excel na célula na qual o texto é renderizado. Um hiperlink para uma imagem ou gráfico é renderizado como um hiperlink do Excel na imagem. Quando você seleciona um hiperlink, ele abre o navegador padrão do cliente e vai para a URL de destino.
Classificação interativa
No Construtor de Relatórios, você pode selecionar botões em um relatório para alterar a ordem em que as tabelas e matrizes exibem linhas e colunas. O Excel não dá suporte a esse tipo de classificação interativa.
Indicadores
Um link de indicador em uma caixa de texto é renderizado como um hiperlink do Excel na célula na qual o texto é renderizado. Um link de indicador para uma imagem ou gráfico é renderizado como um hiperlink do Excel na imagem. Quando você seleciona um indicador, ele vai para a célula do Excel na qual o item de relatório marcado é renderizado.
Relatórios de alterações no tempo de execução
Em alguns cenários, você precisa de um relatório para renderizar em vários formatos. Se não for possível criar um layout de relatório que seja renderizado da maneira desejada em todos os formatos necessários, você poderá usar o RenderFormat
valor global interno. Ao usar esse valor, você pode alterar condicionalmente a aparência do relatório no tempo de execução. Dessa forma, você pode ocultar ou mostrar itens de relatório, dependendo do renderizador usado, para obter os melhores resultados em cada formato. Para obter mais informações, consulte Referências globais e de usuário internas em um relatório paginado (Report Builder).
Solucionar problemas de exportação para o Excel
Quando você usa a conta de serviço virtual e a conta de execução, a exportação para o Excel pode falhar. Especificamente, o acesso à chave do Registro pode ser negado.
Para contornar esse problema, você pode conceder permissão de leitura à conta de execução para a entrada do Registro afetada na ramificação da conta de usuário virtual. Por exemplo, uma possível entrada do registro é HKEY_USERS\S-1-5-80-4050220999-2730734961-1537482082-519850261-379003301\Software\Microsoft\Avalon.Graphics
. Em seguida, você precisa reiniciar o computador.