搜尋本站文章

顯示具有 SSRS 2008 標籤的文章。 顯示所有文章
顯示具有 SSRS 2008 標籤的文章。 顯示所有文章

2012-07-02

SQL Server 2012 SSRS 2012:Reporting Services 支援 xlsx、docx 檔案格式;不再有 xls 檔案受限於最大資料列: 65536 之問題



感謝 Alex Chuo 的通知:SSRS 2012:Reporting Services 支援 xlsx、docx 檔案格式;不再有 xls 檔案受限於最大資料列: 65536 之問題。




適用環境:
SQL Server 2012 版本。
Reporting Services 2012。

在 SQL Server 2012 Reporting Services 中,預設 Excel 轉譯器是與 Microsoft Excel 2007-2010 相容的版本。

在報表管理員和 SharePoint 清單的 [匯出] 功能表中,這就是 [Excel] 選項。

使用新版本 Excel 2007-2010 轉譯延伸模組有許多優點。

下表將比較 Excel 2003 與 Excel 轉譯器。

-- 00_使用新版本 Excel 2007-2010 轉譯延伸模組



改用新版本的 Excel 2007-2010(*.xlsx) 轉譯延伸模組:

(1) 可支援到 1,048,576 筆資料列。
(2) 可支援到 16,384 資料行。

也就是說,Excel 2007-2010 讓試算表的容量擴充到超過 1 百萬資料列和 1 萬 6 千資料行。





以下為使用 SSRS 2012 版本的畫面:

-- 01_SSRS_2012_檢視報表_另存新檔



-- 02_SSRS_2012_開啟或儲存Excel



-- 03_SSRS_2012_另存新檔_只能選xlsx



-- 04_SSRS_2012_超過65,536 列筆資料列







以下為使用 SSRS 2008 R2 版本的畫面:

-- 05_SSRS_2008_R2_檢視報表_另存新檔




但若是匯出的資料列筆數超過 65536,將會遭遇的錯誤訊息如下:

-- 06_SSRS_2008_R2_超過最大資料列_65536



'/Reports' 應用程式中發生伺服器錯誤。
--------------------------------------------------------------------------------

Excel 轉譯延伸模組 : 列數超過這種格式每個工作表的最大資料列限制; 需要的資料列: 113446,最大資料列: 65536 
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。 

例外詳細資訊: Microsoft.Reporting.WebForms.ReportServerException: Excel 轉譯延伸模組 : 列數超過這種格式每個工作表的最大資料列限制; 需要的資料列: 113446,最大資料列: 65536

原始程式錯誤: 

在執行目前 Web 要求期間,產生未處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。  

堆疊追蹤: 

[ReportServerException: Excel 轉譯延伸模組 : 列數超過這種格式每個工作表的最大資料列限制; 需要的資料列: 113446,最大資料列: 65536]

[ReportServerException: Excel 轉譯延伸模組 : 列數超過這種格式每個工作表的最大資料列限制; 需要的資料列: 113446,最大資料列: 65536 (rrRenderingError)]
   Microsoft.Reporting.WebForms.ServerReport.ServerUrlRequest(Boolean isAbortable, String url, Stream outputStream, String& mimeType, String& fileNameExtension) +1018
   Microsoft.Reporting.WebForms.ServerReport.InternalRender(Boolean isAbortable, String format, String deviceInfo, NameValueCollection urlAccessParameters, Stream reportStream, String& mimeType, String& fileNameExtension) +1329
   Microsoft.Reporting.WebForms.ServerModeSession.RenderReport(String format, Boolean allowInternalRenderers, String deviceInfo, NameValueCollection additionalParams, Boolean cacheSecondaryStreamsForHtml, String& mimeType, String& fileExtension) +209
   Microsoft.Reporting.WebForms.ExportOperation.PerformOperation(NameValueCollection urlQuery, HttpResponse response) +219
   Microsoft.Reporting.WebForms.HttpHandler.ProcessRequest(HttpContext context) +171
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +599
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +171

--------------------------------------------------------------------------------
版本資訊: Microsoft .NET Framework 版本:2.0.50727.4927; ASP.NET 版本:2.0.50727.4927 






匯出至 Microsoft Excel (報表產生器及 SSRS)

在 SQL Server 2012 Reporting Services 中,預設 Excel 轉譯器是與 Microsoft Excel 2007-2010 相容的版本。

在報表管理員和 SharePoint 清單的 [匯出] 功能表中,這就是 [Excel] 選項。

與 Excel 2003 相容的舊版現在已命名為 Excel 2003,而且使用該名稱列於功能表上。
根據預設,系統不會顯示 [Excel 2003] 功能表選項,但是管理員可以透過更新 RSReportServer 組態檔,顯示此選項。

若要使用 Excel 2003 轉譯器,從 SQL Server Data Tools (SSDT) 匯出報表,請更新 RSReportDesigner 組態檔。

不過,讓 Excel 2003 轉譯器顯示並不適用於所有案例。
因為 RSReportServer 組態檔位於報表伺服器上,所以您從中匯出報表的工具或產品必須連接至報表伺服器,以便讀取組態檔。

如果您在中斷連接或本機模式中使用工具或產品,讓 Excel 2003 轉譯器顯示就沒有任何作用。
[Excel 2003] 功能表選項會維持無法使用的狀態。

如果您在 RSReportDesigner 組態檔中,讓 Excel 2003 轉譯器顯示,就一定可以在 SQL Server Data Tools (SSDT) 報表預覽中使用 [Excel 2003] 功能表選項。

使用新版本 Excel 2007-2010 轉譯延伸模組有許多優點。

改用新版本的 Excel 2007-2010(*.xlsx) 轉譯延伸模組:

(1) 可支援到 1,048,576 筆資料列。
(2) 可支援到 16,384 資料行。

(3) Excel 2007 讓試算表的容量擴充到超過 1 百萬資料列和 1 萬 6 千資料行。

Excel 轉譯延伸模組會將報表轉譯成 Microsoft Excel 2007-2010 的原生格式。
此格式為 Office Open XML。

此轉譯器所產生之檔案的內容類型為 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 而檔案的副檔名為 .xlsx。

與 Microsoft Excel 2003 相容的舊版 Excel 轉譯延伸模組已重新命名為 Excel 2003。
根據預設,只能使用 Excel 轉譯延伸模組。

您必須更新 Reporting Services 組態檔,才能使用 Excel 2003 轉譯延伸模組。

此轉譯器所產生之檔案的內容類型為 application/vnd.ms-excel 而檔案的副檔名為 .xls。
此轉譯器可提供 Microsoft Excel 2003 的回溯相容性。

--
SQL Server 2012 中 SQL Server Reporting Services 已被取代的功能

(1) Microsoft Word 和 Microsoft Excel 1997-2003 轉譯
(2) Microsoft Word 和 Microsoft Excel 1997-2003 二進位交換檔案格式的 Reporting Services BIFF8 轉譯延伸模組 Reporting Services 報表。

SQL Server 2012 包含以 Microsoft Office 2007-2010 Open XML 格式轉譯的延伸模組。




參考資料

匯出至 Microsoft Excel (報表產生器及 SSRS)
http://msdn.microsoft.com/zh-tw/library/dd255234.aspx

SQL Server 2012 中 SQL Server Reporting Services 已被取代的功能
http://msdn.microsoft.com/zh-tw/library/ms143509.aspx

無法匯入超過 65,536 列是文字檔到 Excel 97、 Excel 2000、 Excel 2002 和 Excel 2003
http://support.microsoft.com/kb/120596/zh-tw

SQL Server 2008:SSIS 2008 與 Excel 2007(*.xlsx、*.xlsb)
http://sharedderrick.blogspot.com/2009/11/sql-server-2008ssis-2008-excel.html

SSIS 2005 與 Excel 2007 (*.xlsx , *.xlsb)
http://sharedderrick.blogspot.com/2008/01/ssis-excel-2007-xlsx-xlsb.html

使用 SSIS 將 SSRS 所產生 Excel 檔案,做適當的歸檔與分類
http://sharedderrick.blogspot.tw/2009/11/ssis-ssrs-excel.html

SQL Server Reporting Services (SSRS): Reporting Services in SQL Server 2012 (codename "Denali") will support XLSX, DOCX formats. Bye bye 65536 rows limit in XLS files ;)
http://blogs.msdn.com/b/farukcelik/archive/2012/02/01/sql-server-reporting-services-ssrs-reporting-services-in-sql-server-2012-codename-quot-denali-quot-will-support-xlsx-docx-formats-bye-bye-65536-rows-limit-in-xls-files.aspx

2011-04-21

使用 Reporting Services 組態管理員來初始化設定 SQL Server 2008 R2 Reporting Services

實作練習
首度使用 Reporting Services 組態管理員來設定 SQL Server 2008 R2 Reporting Services

工作01:執行Reporting Services 組態管理員
步驟01. 點選「開始」\「所有程式」\「Microsoft SQL Server 2008 R2」\「組態工具」內的「Reporting Services 組態管理員」。
--01


步驟02. 在「Reporting Services 組態連接」視窗,選取與確認的「伺服器名稱」,以及「報表伺服器執行個體」的名稱,點選「連接」。
--02


--03



工作02:設定服務帳戶

步驟01. 在「Reporting Services 組態管理員」視窗,在左邊窗格,點選「服務帳戶」節點。在右邊窗格,在「報表伺服器服務帳戶」區域,選擇合適的帳戶,點選「套用」。
--04


工作03:設定Web 服務 URL

步驟01. 在左邊窗格,點選「Web 服務 URL」節點。在右邊窗格,輸入與確認「虛擬目錄」、「TCP 通訊埠」等資料,點選「套用」。
--05



工作04. 設定資料庫

步驟01. 在左邊窗格,點選「資料庫」節點。在右邊窗格,點選「變更資料庫」。
--06


步驟02. 在「報表伺服器資料庫組態精靈」視窗,點選「建立新的報表伺服器資料表」,點選「下一步」。
--07


步驟03. 在「變更資料庫」頁面,選取與確認使用的資料庫伺服器以及驗證類型,點選「測試連接」。
--08


步驟04. 在「測試連接」視窗,點選「確定」。
--09


步驟05. 點選「下一步」。

步驟06. 在「資料庫」頁面,輸入與確認要使用的資料庫名稱,點選「下一步」。
--10


步驟07. 在「認證」頁面,選擇「服務認證」,點選「下一步」。
--11


步驟08. 在「摘要」頁面,點選「下一步」。
--12


步驟09. 在「進度和完成」頁面,點選「完成」。
--13



工作05. 設定報表管理員 URL

步驟01. 在左邊窗格,點選「報表管理員 URL」節點。在右邊窗格,輸入與確認所需的「虛擬目錄」,點選「套用」。
--14



工作06. 設定電子郵件設定

步驟01. 在左邊窗格,點選「電子郵件設定」節點。在右邊窗格,在「寄件者地址」、「SMTP 伺服器」區域,輸入所需的資料,點選「套用」。
--15



工作07. 設定「執行帳戶」

步驟01. 在左邊窗格,點選「執行帳戶」節點。
--16



工作08. 設定「加密金鑰」

步驟01. 在左邊窗格,點選「加密金鑰」節點。
--17


工作09. 設定「向外延展部署」

步驟01. 在左邊窗格,點選「向外延展部署」節點。
--18


步驟02. 在「Reporting Services 組態管理員」視窗,點選「結束」。


工作10. 測試 Reporting Services 組態

步驟01. 在 Internet Explorer 瀏覽器,輸入:http://localhost/Reports
--19


步驟02. 執行 SSMS 管理工具,連線到指定的資料庫伺服器,展開「資料庫」節點,可以觀察到已經建立兩個新的資料庫:ReportServer 與 ReportServerTempDB。
--20




參考資料:

Reporting Services 組態的如何主題
http://technet.microsoft.com/zh-tw/library/ms157412.aspx

設定報表伺服器服務帳戶
http://technet.microsoft.com/zh-tw/library/ms160340.aspx

2009-11-08

使用 SSIS 將 SSRS 所產生 Excel 檔案,做適當的歸檔與分類


友人的需求,因為使用 SSRS 雖然可以直接將 Excel 檔案以電子郵件 E-Mail 方式發送到使用者端,但使用者平常沒時間看,之後還是需要將此 Email自行歸檔到適當的資料夾內存放。

所以,要求能將 Excel 自動歸檔的適合的資料夾內。

可以能處理方式有數種,以下是其中一種處理方式:

(一) 設定 SSRS 產生 Excel 到特定資料夾
請參考下圖所示:




在「路徑」文字方塊中,輸入到您要傳遞報表之現有資料夾的通用命名慣例 (UNC) 路徑 (例如,\\\)。
在路徑的開頭包含雙反斜線字元。請勿在尾端指定反斜線。


關於檔案的覆寫機制有以下的設定方式:
「以較新新版本覆寫現有檔案」。
「如果舊版存在,不要覆寫檔案」。
「加入較新版本時,遞增檔案名稱」。



(二) 利用 SSIS 來移動、複製、改名所需的 Excel 檔案
使用「檔案系統工作」的等功能,將所產生的 Excel 檔案複製移動到適當的資料夾做分類。



「檔案系統」工作會在檔案系統中的檔案和目錄上執行作業。
例如,封裝可使用「檔案系統」工作建立、移動或刪除目錄和檔案。
您也可以使用「檔案系統」工作設定檔案和目錄的屬性。例如,「檔案系統」工作可將檔案設為隱藏或唯讀。





延伸應用:
1. SSRS 產生 Excel 檔案,利用 SSIS 的「指令碼工作」來加密 Excel 檔案,再利用「傳送郵件工作 」將此加密的 Excel 檔案,E-mail 發送給所需的使用者。
2. 取代某些需要利用 SSIS 動態產生 Excel 檔案的情境。



適用版本:SSIS 2005、SSIS 2008、SSRS 2005、SSRS 2008

參考資料:
如何:訂閱報表 (報表管理員)
http://technet.microsoft.com/zh-tw/library/ms157386.aspx

檔案系統工作
http://technet.microsoft.com/zh-tw/library/ms140185.aspx