2010年7月26日 星期一

SSRS匯出Excel格式的問題

SSRS匯出Excel會跑版,報表在PDF格式是一頁,結果在Excel預覽列印時會變成兩頁,就算是欄位很少的報表也是一樣,與同事討論之後,發現可以使用UNIX裡的Pipe概念,SSRS的輸出是NPOI的輸入,最後再輸出至前端,相當於都讓SSRS做格式的輸出,最後請NPOI調整Excel的設定,要不然就只能使用其他軟體廠商開發在SSRS上面的Render元件,或是自己重寫某個Render。
以下的程式碼是NPOI如何接收SSRS輸出的程式碼。

byte[] bytes = ReportViewer1.ServerReport.Render(
"Excel", null, out mimeType, out encoding, out extension,
out streamids, out warnings);

MemoryStream msExcel = new MemoryStream(bytes);
HSSFWorkbook workbook = new HSSFWorkbook(msExcel);

[MSDN Magazine]Display Your Data Your Way with Custom Renderers for Reporting Services
How to Change the Default Rendering on SSRS