Esportare un report impaginato in Microsoft Excel (Generatore report)

Si applica a: Generatore di report Microsoft (SSRS) Power BI Report Builder Report Designer in SQL Server Data Tools

Quando si usa Power BI o SQL Server Reporting Services (SSRS), è possibile usare l'estensione per il rendering di Excel per esportare report impaginati in Microsoft Excel. La larghezza delle colonne esportate in Excel simula la larghezza delle colonne nei report. È tuttavia possibile ristrutturare i dati del report o elaborarli ulteriormente in una cartella di lavoro.

Questo articolo illustra vari aspetti del processo di esportazione, ad esempio il supporto del renderer per le funzionalità interattive e il posizionamento dei dati nelle celle. Sono inoltre illustrate le limitazioni di Excel e del renderer.

Formato di esportazione

L'estensione per il rendering di Excel esporta i report nel formato Office Open XML. Il tipo di contenuto generato dal renderer è application/vnd.openxmlformats-officedocument.spreadsheetml.sheet e l'estensione del file è .xlsx.

È possibile modificare alcune impostazioni predefinite per questo renderer modificando le impostazioni relative alle informazioni sul dispositivo. Per altre informazioni, vedere Excel Device Information Settings.

Per informazioni su come esportare un report in formato Excel, vedere Esportare report impaginati (Generatore report).For information about how to export a report in Excel format, see Export impaginated reports (Generatore report).

Importante

Quando si definisce un parametro del report di tipo String, l'utente viene visualizzato con una casella di testo che può accettare qualsiasi valore. Se il parametro del report non è associato a un parametro di query e i valori dei parametri sono inclusi nel report, esiste un rischio per la sicurezza. In particolare, l'utente del report può immettere la sintassi dell'espressione, il codice di script o un URL come valore del parametro. Di conseguenza, l'utente può immettere uno script dannoso o un collegamento dannoso. Se il report viene esportato in Excel, altri utenti possono visualizzarlo. Se selezionano il contenuto del parametro sottoposto a rendering, rischiano di eseguire accidentalmente uno script dannoso o di passare a un sito dannoso.

Per ridurre il rischio di eseguire inavvertitamente script dannosi, aprire i report visualizzabili solo da origini attendibili. Per altre informazioni sulla sicurezza dei report, vedere Garantire la sicurezza di report e risorse.

Limitazioni di Excel

Excel pone limitazioni nei report esportati a causa delle funzionalità di Excel e dei relativi formati di file. Di seguito vengono elencate le limitazioni più importanti:

  • La larghezza massima della colonna è di 255 caratteri o 1726,5 punti. Nel renderer non viene verificato se la larghezza della colonna sia inferiore a tale limite.
  • Il numero massimo di caratteri in una cella è 32.767. Se tale limite viene superato, nel renderer viene visualizzato un messaggio di errore.
  • L'altezza massima della riga è pari a 409 punti. Se il contenuto di una riga supera i 409 punti, la cella di Excel mostra una quantità parziale di testo fino a 409 punti. Il resto del contenuto della cella è ancora all'interno della cella, fino al massimo consentito 32.767 caratteri.
  • Poiché l'altezza massima della riga è di 409 punti, se l'altezza definita di una cella nel report è maggiore di 409 punti, Excel suddivide il contenuto della cella in più righe.
  • Il numero massimo di fogli di lavoro non è definito in Excel. Tuttavia, fattori esterni, ad esempio memoria e spazio su disco, potrebbero causare limitazioni da applicare.
  • Nelle strutture sono consentiti solo fino a sette livelli annidati.
  • La disponibilità di una struttura dipende dalla posizione dell'elemento del report che controlla la visibilità di un altro elemento. Una struttura non è disponibile nei casi seguenti:
    • L'elemento del report del controllo non si trova nella riga precedente o successiva rispetto all'elemento espanso o compresso.
    • L'elemento del report del controllo non si trova nella colonna dell'elemento espanso o compresso.

Per altre informazioni sulle limitazioni di Excel, vedere Specifiche e limiti di Excel.

Caselle di testo e testo

Alle caselle di testo e al testo si applicano le limitazioni seguenti:

  • I valori della casella di testo costituiti da espressioni non vengono convertiti in formule di Excel. Il valore di ogni casella di testo viene valutato durante l'elaborazione del report. L'espressione valutata viene esportata come contenuto di ogni cella di Excel.
  • Viene eseguito il rendering di ogni casella di testo all'interno di una cella di Excel. Per le dimensioni del carattere, il viso, la decorazione e lo stile del carattere, la formattazione è supportata nel testo della cella.
  • Excel non supporta la formattazione del testo overline.
  • In Excel viene aggiunto un riempimento predefinito di circa 3,75 punti a sinistra e a destra delle celle. Se la spaziatura interna di una casella di testo è inferiore a 3,75 punti e la casella non è sufficiente per contenere il testo, il testo potrebbe essere disposto a capo su una nuova riga in Excel. Per risolvere questo problema, aumentare la larghezza della casella di testo nel report.

Immagini

Alle immagini si applicano le limitazioni seguenti:

  • Le immagini di sfondo per gli elementi del report vengono ignorate, poiché in Excel non sono supportate immagini di sfondo per le singole celle.
  • L'estensione per il rendering Excel supporta solo l'immagine di sfondo del corpo del report. Se nel report viene visualizzata un'immagine di sfondo del corpo di report, il rendering dell'immagine verrà eseguito come immagine di sfondo del foglio di lavoro.

Rettangoli

La limitazione seguente si applica ai rettangoli: i rettangoli nei piè di pagina del report non vengono esportati in Excel. Ma i rettangoli nel corpo del report, le celle Tablix e altri componenti simili vengono visualizzati come un intervallo di celle di Excel.

Intestazioni e piè di pagina del report

Alle intestazioni e ai piè di pagina del report si applicano le limitazioni seguenti:

  • Nelle intestazioni e nei piè di pagina di Excel sono supportati al massimo 256 caratteri, incluso il markup. L'estensione per il rendering tronca la stringa a 256 caratteri.
  • SSRS non supporta i margini per intestazioni e piè di pagina del report. In Excel, questi valori di margine sono impostati su zero.
  • Quando si stampa un report esportato in Excel, le impostazioni della stampante possono influire sul rendering. In particolare, se un'intestazione o un piè di pagina nel report contiene più righe di dati, è possibile che non vengano visualizzate più righe nel riquadro di stampa.
  • Le caselle di testo in un'intestazione o in un piè di pagina mantengono la formattazione, ma non l'allineamento quando vengono esportate in Excel. Gli spazi iniziali e finali vengono tagliati quando viene eseguito il rendering del report in Excel, che modifica l'allineamento.

Celle unite

La limitazione seguente si applica all'unione di celle: se le celle vengono unite, il testo non viene eseguito correttamente.

Il renderer di Excel è principalmente un renderer di layout, L'obiettivo è replicare il layout del report di cui è stato eseguito il rendering con la stessa precisione possibile in un foglio di lavoro di Excel. Di conseguenza, le celle potrebbero essere unite nel foglio di lavoro per mantenere il layout del report. Le celle unite possono causare problemi perché la funzionalità di ordinamento in Excel richiede che le celle vengano unite in modo specifico per il corretto funzionamento dell'ordinamento. Ad esempio, se si desidera ordinare un intervallo di celle, excel richiede che ogni cella unita nell'intervallo abbia le stesse dimensioni delle altre celle unite nell'intervallo.

La riduzione del numero di celle unite nei fogli di lavoro di Excel semplifica l'ordinamento dei fogli di lavoro. I punti seguenti consentono di ridurre al minimo il numero di celle unite durante il processo di esportazione.

  • Il motivo più comune per cui le celle vengono unite è che gli elementi non sono allineati a sinistra o a destra. In genere è possibile risolvere il problema allineando i bordi sinistro e destro di tutti gli elementi del report e assegnando agli elementi la stessa larghezza.
  • Anche quando si allineano tutti gli elementi, alcune colonne vengono comunque unite in rari casi. La conversione dell'unità interna e l'arrotondamento durante il processo di rendering possono causare l'unione delle celle. Nel linguaggio RDL (Report Definition Language) è possibile specificare posizioni e dimensioni in diverse unità, ad esempio pollici, pixel, centimetri e punti. Internamente, Excel usa punti. Di conseguenza, i pollici e i centimetri vengono convertiti in punti durante il rendering. Per ridurre al minimo le operazioni di conversione durante il rendering e la potenziale imprecisione dell'arrotondamento, valutare la possibilità di specificare tutte le misure in punti interi. Un pollice corrisponde a 72 punti.

Gruppi di righe e di colonne del report

I report che includono gruppi di righe o gruppi di colonne contengono celle vuote quando vengono esportate in Excel. L'immagine seguente mostra un report che raggruppa le righe sulla distanza pendolare. Ogni distanza dal lavoro può contenere più di un cliente.

Screenshot che mostra un report nel portale Web SSRS. Ogni riga della distanza tra commuta nel report copre più righe del cliente.

Quando si esporta il report in Excel, la distanza del commutare viene visualizzata solo in una cella della colonna Commute Distance . Quando si progetta il report, è possibile allineare il testo alla parte superiore, centrale o inferiore del gruppo di righe. Tale allineamento determina se il valore si trova nel primo, nel centro o nell'ultima cella del report esportato. Le altre celle della colonna nel gruppo sono vuote. La colonna Name , che contiene i nomi dei clienti, non contiene celle vuote.

L'immagine seguente mostra il report dopo l'esportazione in Excel. Le celle vuote sono ombreggiate in grigio nell'immagine, ma tale ombreggiatura non fa parte del report esportato.

Screenshot di un report esportato in Excel. Ogni riga di distanza è prima in un intervallo che copre diverse righe del cliente. Altre celle dell'intervallo sono grigie.

Dopo aver esportato un report contenente gruppi di righe o gruppi di colonne in Excel, è necessario modificare il report prima di poter visualizzare i dati esportati in una tabella pivot. È necessario aggiungere il valore del gruppo alle celle da cui non è presente. Il foglio di lavoro diventa quindi una tabella piatta con valori in tutte le celle. L'immagine seguente mostra il foglio di lavoro aggiornato.

Screenshot di un report esportato in Excel senza celle vuote. Ogni riga contiene un valore di distanza e un nome, tra gli altri dati.

Se si crea un report per lo scopo specifico di esportarlo in Excel per un'ulteriore analisi dei dati del report, non è consigliabile raggruppare righe o colonne nel report.

Renderer di Excel

Il codice XML seguente mostra l'elemento per l'estensione per il rendering di Excel nei file di configurazione RSReportServer e RSReportDesigner:

<Extension Name="EXCELOPENXML" Type="Microsoft.ReportingServices.Rendering.ExcelOpenXmlRenderer.ExcelOpenXmlRenderer,Microsoft.ReportingServices.ExcelRendering"/>

Il renderer di Excel presenta i valori e i limiti predefiniti seguenti:

Proprietà valore
Numero massimo di colonne per foglio di lavoro 16,384
Numero massimo di righe per foglio di lavoro 1.048.576
Numero di colori consentito in un foglio di lavoro Circa 16 milioni (colore a 24 bit)
File compressi ZIP Compressione ZIP
Famiglia di caratteri predefinita Calibri
Dimensione predefinita dei caratteri 11 punti
Altezza della riga predefinita 15 punti

Poiché il report imposta in modo esplicito l'altezza della riga, l'altezza della riga predefinita influisce solo sulle righe ridimensionate automaticamente durante l'esportazione in Excel.

Elementi del report in Excel

Quando si esporta un report in Excel, il rendering dei componenti seguenti viene eseguito come intervallo di celle di Excel: sottoreport, rettangoli, corpo del report e aree dati. Il rendering di caselle di testo, immagini, grafici, barre dei dati, grafici sparkline, mappe, misuratori e indicatori viene eseguito all'interno di una cella di Excel. Ma la cella potrebbe essere unita ad altre celle. Il layout del resto del report determina se si verifica l'unione.

Immagini, grafici, grafici sparkline, barre dei dati, mappe, misuratori, indicatori e linee sono posizionati all'interno di una cella di Excel, ma si trovano sopra la griglia delle celle. Il rendering delle linee viene eseguito come bordi della cella.

Grafici, grafici sparkline, barre dei dati, mappe, misuratori e indicatori vengono esportati come immagini. I dati rappresentati non vengono esportati con essi. I dati non sono disponibili nella cartella di lavoro di Excel, a meno che non siano inclusi in una colonna o in una riga in un'area dati all'interno di un report.

Se si desidera utilizzare i dati per grafici, grafici sparkline, barre dei dati, mappe, misuratori e indicatori, è possibile esportare il report in un file CSV o generare feed di dati conformi a Atom dal report. Per altre informazioni, vedere Esportare un report impaginato in un file CSV (Generatore report) e Generare feed di dati dai report (Generatore report).

Dimensioni della pagina

L'estensione per il rendering di Excel utilizza le impostazioni di altezza e larghezza della pagina per determinare le impostazioni del foglio di lavoro di Excel. Excel tenta di abbinare le impostazioni delle proprietà PageHeight e PageWidth a uno dei formati carta più comuni.

Se non viene trovata alcuna corrispondenza, vengono usate le dimensioni di pagina predefinite per la stampante. L'orientamento è impostato su Portrait se la larghezza della pagina è minore dell'altezza della pagina. In caso contrario, l'orientamento è impostato su Landscape.

Nomi delle schede dei fogli di lavoro

Quando si esporta un report in Excel, le interruzioni di pagina creano le pagine del report e ogni pagina viene esportata in un foglio di lavoro diverso. Se si specifica un nome di pagina iniziale per il report, il primo foglio di lavoro della cartella di lavoro di Excel ha questo nome. Poiché ogni foglio di lavoro in una cartella di lavoro deve avere un nome univoco, un numero intero a partire da due e incrementato di uno viene aggiunto al nome della pagina per ogni foglio di lavoro. Ad esempio, se il nome della pagina iniziale è Sales Report by Fiscal Year, il secondo foglio di lavoro è denominato Sales Report by Fiscal Year (2). Il terzo è denominato Sales Report per anno fiscale (3) e così via.

Se tutte le pagine del report create da interruzioni di pagina forniscono nuovi nomi di pagina, ogni foglio di lavoro ha il nome della pagina associato. Tuttavia, se questi nomi di pagina non sono univoci, i fogli di lavoro sono denominati allo stesso modo dei nomi di pagina iniziale. Ad esempio, se il nome della pagina di due gruppi è Sales for NW, una scheda del foglio di lavoro ha il nome Sales for NW e l'altra Sales for NW (2).

Se il report non fornisce un nome di pagina iniziale o nomi di pagina per le interruzioni di pagina, le schede del foglio di lavoro hanno i nomi predefiniti Sheet1, Sheet2 e così via.

SSRS fornisce proprietà che è possibile impostare per report, aree dati, gruppi e rettangoli. Queste proprietà consentono di creare report che è possibile esportare in Excel in modo che si desideri. Per altre informazioni, vedere Paginazione nei report impaginati (Microsoft Generatore report).

Proprietà del documento

Il renderer di Excel scrive i metadati seguenti nel file di Excel.

Proprietà dell'elemento report Descrizione
Data di creazione Data e ora di esecuzione del report espresse come valore data/ora ISO.
Autore Report.Author
Descrizione Report.Description
LastSaved Data e ora di esecuzione del report espresse come valore data/ora ISO.

Intestazioni di pagina e piè di pagina

Il rendering dell'intestazione di pagina dipende dall'impostazione delle informazioni SimplePageHeaders sul dispositivo:

  • Per impostazione predefinita, SimplePageHeaders è impostato su False. In questo caso, il rendering dell'intestazione viene eseguito nella griglia delle celle nel foglio di lavoro di Excel, nella parte superiore della griglia.
  • Se SimplePageHeaders è impostato su True, il rendering dell'intestazione viene eseguito nella sezione intestazione del foglio di lavoro di Excel.

Il rendering del piè di pagina viene sempre eseguito nella sezione piè di pagina del foglio di lavoro di Excel, indipendentemente dal valore dell'impostazione SimplePageHeaders .

A causa delle limitazioni di Excel, le caselle di testo sono l'unico tipo di elemento del report di cui è possibile eseguire il rendering nelle sezioni intestazione e piè di pagina di Excel.

Nelle sezioni di intestazione e piè di pagina di Excel sono supportati al massimo 256 caratteri, incluso il markup. Se questo limite viene superato, il renderer di Excel rimuove i caratteri di markup a partire dalla fine dell'intestazione o della stringa del piè di pagina per ridurre il numero di caratteri totali. Se tutti i caratteri di markup vengono rimossi e la lunghezza supera ancora il valore massimo, la stringa viene troncata a partire dalla fine.

Impostazioni SimplePageHeader

  • Quando l'impostazione delle informazioni SimplePageHeaders sul dispositivo è impostata su False, le righe del foglio di lavoro che contengono le intestazioni diventano righe bloccate. È possibile bloccare o sbloccare il riquadro in Excel.

  • Se le impostazioni di Excel per i titoli di stampa sono configurate per stampare queste righe di intestazione, queste intestazioni vengono stampate in ogni pagina del foglio di lavoro, ad eccezione del foglio di copertina della mappa documento.

  • Nella Finestra Proprietà intestazione di pagina Generatore report:

    • Se l'opzione Stampa nella prima pagina non è selezionata, l'intestazione non viene aggiunta alla prima pagina del report.
    • Se l'opzione Stampa nell'ultima pagina non è selezionata, l'intestazione non viene aggiunta all'ultima pagina del report.

Interattività

Alcuni elementi interattivi sono supportati in Excel. Le sezioni seguenti illustrano l'interattività.

Elementi visualizzati e nascosti

Esistono limitazioni nel modo in cui Excel gestisce gli elementi del report nascosti e visualizzati quando vengono esportati. I gruppi, le righe e le colonne che contengono elementi del report che possono espandere e comprimere vengono visualizzati come struttura di Excel. In Excel, tuttavia, vengono espanse e compresse righe e colonne nell'intera riga o colonna. Di conseguenza, gli elementi del report possono essere compressi che non devono essere compressi. Inoltre, i simboli di struttura di Excel possono diventare ingombrati con contorni sovrapposti.

Per risolvere questi problemi, l'estensione per il rendering di Excel usa le regole di struttura seguenti:

  • L'elemento del report in grado di espandere e comprimere più vicino all'angolo superiore sinistro può anche espandere e comprimere in Excel. Altri elementi del report che condividono lo spazio verticale o orizzontale con l'elemento superiore sinistro non possono espandersi o comprimere in Excel.

  • Per determinare se un'area dati è compressione in base a righe o colonne, la posizione di due elementi viene presa in considerazione:

    • Elemento del report che controlla la visibilità
    • Area dati in grado di espandere e comprimere

    Le regole applicabili dipendono dalla posizione relativa di questi due elementi:

    • Se l'elemento che controlla la visibilità viene visualizzato sopra o sotto l'elemento che si espande e comprime, l'elemento è comprimibile in base alle righe.
    • Se l'elemento che controlla la visibilità viene visualizzato accanto all'elemento che si espande e comprime, l'elemento è comprimibile in base alle colonne.
    • Se l'elemento che controlla la visibilità viene visualizzata la stessa distanza sopra e accanto all'elemento che si espande e comprime, l'elemento è comprimibile in base alle righe.
  • Per determinare la posizione dei subtotali automatici nel report sottoposto a rendering, l'estensione per il rendering esamina la prima istanza di un membro dinamico. Se un membro statico peer viene visualizzato immediatamente sopra di esso, si presuppone che il membro dinamico sia il subtotale. Vengono impostate strutture per indicare che si tratta di dati di riepilogo. In assenza di elementi di pari livello statici di un membro dinamico, la prima istanza dell'istanza corrisponde al subtotale.

  • A causa di una limitazione di Excel, i contorni possono essere annidati solo fino a sette livelli.

Mappa documento

Se nel report sono presenti etichette mappa documento, viene eseguito il rendering di una mappa documento come foglio di lavoro di copertina di Excel. Il foglio di lavoro è denominato Mappa documenti e si trova nella prima posizione della scheda nella cartella di lavoro.

La DocumentMapLabel proprietà di un elemento o di un gruppo del report determina l'etichetta nella mappa documento. Le etichette vengono elencate nell'ordine in cui vengono visualizzate nel report, a partire dalla prima riga, nella prima colonna. In ogni cella dell'etichetta della mappa documento sono presenti rientri il cui numero corrisponde a quello dei livelli di profondità con cui viene visualizzata nel report. Ogni livello di rientro viene rappresentato posizionando l'etichetta in una colonna successiva. Excel supporta fino a 256 livelli di nidificazione della struttura.

Il rendering della struttura della mappa documento viene eseguito come struttura di Excel comprimibile. Tale struttura corrisponde alla struttura annidata della mappa documento. Lo stato di espansione o compressione della struttura inizia a partire dal secondo livello.

Il nodo radice della mappa è il nome del report o il relativo nome file senza l'estensione rdl. Questo nome non è interattivo.

Il renderer usa un tipo di carattere Arial a 10 punti per i collegamenti alla mappa documento.

Viene eseguito il rendering di un collegamento drill-through visualizzato in una casella di testo come collegamento ipertestuale di Excel nella cella in cui viene eseguito il rendering del testo. Viene eseguito il rendering di un collegamento drill-through per un'immagine o un grafico come collegamento ipertestuale di Excel nell'immagine. Quando si seleziona un collegamento drill-through, apre il browser predefinito del client e passa alla visualizzazione HTML della destinazione.

Viene eseguito il rendering di un collegamento ipertestuale visualizzato in una casella di testo come collegamento ipertestuale di Excel nella cella in cui viene eseguito il rendering del testo. Viene eseguito il rendering di un collegamento ipertestuale per un'immagine o un grafico come collegamento ipertestuale di Excel nell'immagine. Quando si seleziona un collegamento ipertestuale, apre il browser predefinito del client e passa all'URL di destinazione.

Ordinamento interattivo

In Generatore report è possibile selezionare i pulsanti in un report per modificare l'ordine in cui le tabelle e le matrici visualizzano righe e colonne. Excel non supporta questo tipo di ordinamento interattivo.

Bookmarks

Viene eseguito il rendering di un collegamento di segnalibro in una casella di testo come collegamento ipertestuale di Excel nella cella in cui viene eseguito il rendering del testo. Viene eseguito il rendering di un collegamento ai segnalibri per un'immagine o un grafico come collegamento ipertestuale di Excel nell'immagine. Quando si seleziona un segnalibro, passa alla cella di Excel in cui viene eseguito il rendering dell'elemento del report con segnalibro.

Modificare i report in fase di esecuzione

In alcuni scenari è necessario un report per eseguire il rendering in più formati. Se non è possibile creare un layout del report che esegue il rendering nel modo desiderato in tutti i formati necessari, è possibile usare il RenderFormat valore globale predefinito. Quando si usa questo valore, è possibile modificare in modo condizionale l'aspetto del report in fase di esecuzione. In questo modo, è possibile nascondere o visualizzare gli elementi del report, a seconda del renderer usato, per ottenere i risultati migliori in ogni formato. Per altre informazioni, vedere Riferimenti alle raccolte Global e User predefinite in un report impaginato (Generatore di report).

Risoluzione dei problemi relativi all'esportazione in Excel

Quando si usa l'account del servizio virtuale e l'account di esecuzione, l'esportazione in Excel può non riuscire. In particolare, l'accesso alla chiave del Registro di sistema può essere negato.

Per risolvere questo problema, è possibile concedere l'autorizzazione di lettura all'account di esecuzione per la voce del Registro di sistema interessata nel ramo dell'account utente virtuale. Ad esempio, una possibile voce del registro di sistema è HKEY_USERS\S-1-5-80-4050220999-2730734961-1537482082-519850261-379003301\Software\Microsoft\Avalon.Graphics. È quindi necessario riavviare il computer.