匯出至 Microsoft Excel (報表產生器 2.0)
Excel 轉譯延伸模組會轉譯與 Microsoft Excel 97 和更新版本相容的報表。報表會匯出為包含某些配置的 Excel 試算表,而且原始設計元素會遭到移除,如本主題所述。轉譯為 Microsoft Excel 之報表的格式為「二進位交換檔案格式 (BIFF)」。此轉譯器所產生之檔案的內容類型為:application/vnd.ms-excel。由此轉譯器產生之檔案的副檔名為:.xls。
安全性注意事項 |
---|
當您將參數定義為 String 類型時,使用者會看到一個可接受任何值的文字方塊。如果報表參數未繫結至查詢參數且參數值未包含在報表中,報表使用者就可以輸入運算式語法、指令碼或 URL 到參數值中,將報表轉譯為 Excel。如果另一個使用者接著檢視報表並按一下轉譯的參數內容,該使用者可能會不小心執行惡意指令碼或連結。 |
若要減輕不小心執行惡意指令碼的風險,請只從信任的來源開啟轉譯的報表。如需有關保護報表的詳細資訊,請參閱<保護報表與資源>(英文)。
Excel 中的報表項目
矩形、子報表、報表主體以及資料區域都會轉譯為 Excel 資料格的範圍。文字方塊、影像與圖表必須在一個 Excel 資料格內轉譯,而且這個資料格可能會依據報表其餘部分的配置而合併。
系統會將影像、圖表與線條放置在一個 Excel 資料格內,但是會位於資料格方格的頂端。線條會轉譯為資料格框線。
分頁
此轉譯器僅支援邏輯分頁符號。系統會針對每個明確定義的邏輯分頁符號建立新的 Excel 試算表索引標籤。
頁面命名
如果活頁簿中只有一個工作表 (不包括文件引導模式),工作表的名稱就是報表名稱。
如果活頁簿中有多個工作表 (不包括文件引導模式),工作表的名稱為 SheetX,其中 X 是活頁簿中的工作表號碼,例如,第五個工作表稱為 Sheet5。
調整頁面大小
Excel 轉譯延伸模組會使用頁面高度與寬度設定來決定要在 Excel 工作表中定義的紙張設定。Excel 會嘗試讓 PageHeight 和 PageWidth 屬性設定符合其中一個常用的紙張大小。
如果找不到相符項目,Excel 會針對印表機使用預設的頁面大小。如果頁面寬度小於頁面高度,則方向會設定為 [縱向];否則,會設定為 [橫向]。
文件屬性
Excel 轉譯器會將下列中繼資料寫入到 Excel 檔。
報表元素屬性 |
說明 |
---|---|
建立日期 |
執行報表的日期和時間,當做 ISO 日期/時間值。 |
作者 |
Report.Author |
說明 |
Report.Description |
LastSaved |
執行報表的日期和時間,當做 ISO 日期/時間值。 |
頁首和頁尾
根據裝置資訊的 SimplePageHeaders 設定,可以用兩種方式轉譯頁首:系統可以在每個工作表資料格方格的頂端轉譯頁首,或者在實際的 Excel 工作表頁首區段轉譯。根據預設,頁首會轉譯到 Excel 工作表的資料格方格。
不管 SimplePageHeaders 設定的值為何,頁尾永遠會轉譯到實際的 Excel 工作表頁尾區段。
Excel 頁首和頁尾區段最多支援 256 個字元,包括標記。如果超出這個限制,Excel 轉譯器會移除頁首和/或頁尾字串結尾的標記字元,以減少字元的總數。如果移除所有標記字元後長度仍然超出最大值,系統會從右側開始截斷字串。
SimplePageHeader 設定
根據預設,裝置資訊的 SimplePageHeaders 設定會設定為 False,因此,在 Excel 工作表介面上,頁首會轉譯為報表中的資料列。包含頁首的工作表資料列會變成鎖定的資料列。您可以在 Excel 中凍結或取消凍結窗格。如果有選取 [列印標題] 選項,這些頁首會自動設定為列印在每個工作表頁面上。
如果在 Excel 的 [頁面配置] 索引標籤上選取 [列印標題] 選項,頁首會在活頁簿的每個工作表頂端重複 (除了文件引導模式封面之外)。如果沒有在 [報表頁首屬性] 或 [報表頁尾屬性] 對話方塊中選取 [在第一頁列印] 或 [在最後一頁列印] 選項,頁首就不會分別加入到第一頁或最後一頁。
頁尾會在 Excel 的頁尾區段中轉譯。
由於 Excel 的限制,文字方塊是可以在 Excel 頁首/頁尾區段轉譯的唯一報表項目類型。
互動性
在 Excel 中支援某些互動項目。下列是特定行為的描述。
顯示與隱藏
Microsoft Excel 對於報表匯出時如何管理隱藏與顯示的報表項目有一些限制。包含可以切換之報表項目的群組、資料列和資料行會轉譯為 Excel 大綱。Excel 建立的大綱可以跨整個資料列或資料行展開和折疊資料列與資料行,這可能會折疊不想折疊的報表項目。此外,Excel 的大綱符號會因為重疊的大綱而變得雜亂。若要解決這些問題,請在使用 Excel 轉譯延伸模組時套用下列大綱規則:
左上角可以切換的報表項目在 Excel 中仍然可以切換。可以切換並與可以在左上角切換之報表項目共用垂直或水平空間的報表項目無法在 Excel 中切換。
若要決定資料區域會依據資料列或資料行折疊,必須決定控制切換之報表項目的位置,以及切換報表項目的位置。如果控制切換的項目出現在要切換的項目之前,系統就會依據資料列折疊。否則,項目會依據資料行摺疊。如果控制切換的項目平均出現在要切換的區域旁邊與上方,系統就會隨著可依據資料列折疊的資料列轉譯。
為判斷小計放置在轉譯報表中的位置,轉譯延伸模組會檢查動態成員的第一個執行個體。如果有對等靜態成員出現在該執行個體的正上方,系統就會假設該動態成員為小計。系統會設定大綱來表示這是摘要資料。如果沒有動態成員的靜態同層級,執行個體的第一個執行個體就是小計。
由於 Excel 的限制,大綱所建立的巢狀結構最多只能有 7 個層級。
文件引導模式
如果報表中有任何文件引導模式標籤,就會轉譯文件引導模式。文件引導模式會轉譯為插入活頁簿第一個索引標籤位置的 Excel 工作表封面。此工作表的名稱為**「文件引導模式」**(Document Map)。
顯示在文件引導模式中的文字取決於報表項目或群組的 DocumentMapLabel 屬性。文件引導模式標籤會以報表中出現的順序列出,從第一個資料行的第一個資料列開始。每個文件引導模式標籤資料格都會縮排報表中出現的層級深度。系統會在接續的資料行中放置標籤來表示每個縮排層級。Excel 最多支援 256 層的大綱巢狀層級。
文件引導模式大綱會轉譯為可折疊的 Excel 大綱。大綱結構會與文件引導模式的巢狀結構相符。大綱的展開和折疊狀態會從第二層級開始。
文件引導模式的根節點就是報表名稱 <reportname>.rdl,而且這不是互動的。文件引導模式連結字型為 Arial,10pt。
鑽研連結
系統會將文字方塊中出現的鑽研連結轉譯為轉譯文字之資料格中的 Excel 超連結。而影像和圖表的鑽研連結則會在轉譯時,轉譯為影像上的 Excel 超連結。當您按一下鑽研連結時,用戶端的預設瀏覽器會開啟,並導覽至目標的 HTML 檢視。
超連結
系統會將文字方塊中出現的超連結轉譯為轉譯文字之資料格中的 Excel 超連結。而影像和圖表的超連結則會在轉譯時,轉譯為影像上的 Excel 超連結。當您按一下超連結時,用戶端的預設瀏覽器會開啟,並導覽至目標 URL。
互動式排序
Excel 不支援互動式排序。
書籤
系統會將文字方塊中的書籤連結轉譯為轉譯文字之資料格中的 Excel 超連結。而影像和圖表的書籤連結則會在轉譯時,轉譯為影像上的 Excel 超連結。按一下書籤時,會移至轉譯加上書籤之報表項目的 Excel 資料格。
Excel 樣式轉譯
下列是如何在 Excel 中轉譯項目的簡短描述。
調色盤
Excel 最多僅支援 56 色的調色盤。系統會在自訂調色盤中定義報表中所使用的前 56 個獨特色彩。如果在報表中使用的色彩超過 56 種,轉譯延伸模組會讓所需的色彩符合調色版中已提供的 56 種色彩之一。Excel 的色彩對應演算法用於比對色彩與調色盤中現有的色彩。
Excel 限制
Excel 因為 BIFF 的格式能力,而對匯出的報表有所限制。影響最大的限制如下所列:
工作表中的資料列數目上限限制為 65,536。如果超出這個限制,轉譯器會顯示錯誤訊息。
工作表中的資料行數目上限限制為 256。如果超出這個限制,轉譯器會顯示錯誤訊息。
資料行寬度上限的限制為 255 個字元或 1726.5 點。轉譯器不會驗證資料行寬度低於限制。
資料列高度的上限為 409 點。如果資料列的內容導致資料列高度的增加超過 409 點,系統會分割內容,並加入到下一個資料列。
資料格中的字元數目上限限制為 32,767 個字元。如果超出這個限制,轉譯器會顯示錯誤訊息。
[!附註]
在 Excel 工作表的資料格中會顯示大約 1000 個字元,但是在公式列中,最多只能編輯字元數目的上限。
在 Excel 中沒有定義工作表數目上限,但是,諸如記憶體與磁碟空間之類的外部因素,則會應用這些限制。
屬於運算式的文字方塊值不會轉換為 Excel 公式。每一個文字方塊的值會在報表處理期間受到評估。評估運算式會匯出為各 Excel 儲存格的內容。
如果資料格經過合併,自動換行就無法正確運作。如果在利用 AutoSize 屬性轉譯文字方塊的資料列上有任何經過合併的資料格存在,自動調整將無法運作。
Excel 不支援個別資料格的背景影像,因此會忽略報表項目的背景影像。
文字方塊會在一個 Excel 資料格中轉譯。Excel 資料格內的個別文字上只有支援字型大小、字型、裝飾與字型樣式的格式設定。
Excel 中不支援「頂線」文字效果。
Excel 頁首和頁尾區段最多支援 256 個字元,包括標記。轉譯延伸模組會在 256 個字元處截斷字串。
在大綱中,Excel 的巢狀結構最多只允許七個層級。
如果控制是否要切換其他項目的報表項目不在要切換之項目的上一個資料列或下一個資料列,則系統也會停用大綱。
Excel 轉譯延伸模組僅支援報表主體的背景影像。如果報表主體背景影像顯示在報表中,該影像會轉譯為工作表的背景影像。
Excel 會將大約 3.75 點的預設填補加入到資料格的左側和右側。如果文字方塊的填補設定小於 3.75 點,而且寬度僅能勉強容納文字,該文字在 Excel 中可能會換行。
[!附註]
若要解決此問題,請在報表中增加文字方塊的寬度。