C#服務器端生成報告文檔:使用帆軟報表生成Word、Pdf報告


  一、帆軟報表簡介

  報表工具中,帆軟報表相比Crystal Report(水晶報表)、SQL Server Report Service(SSRS)等報表工具來說算是佼佼者,此外帆軟報表在統計圖表、數據填報方面應用也不錯,此處僅針對帆軟的基本報表功能的應用說事兒。

  http://www.fanruan.com/

  二、服務器端集成

  帆軟報表使用Java實現,可部署在Tomcat上,客戶端查看報表時可直接在瀏覽器上呈現。

  對於企業應用中報告文檔的生成,可通過模擬Web請求獲取到報表/報告的Word、Pdf輸出文檔;如果需要對生成的文檔做二次加工,例如與其他文檔合並等,可接着使用Word操作組件、服務(例如DocX、MS Word DCOM等)或PDF操作組件(iTextSharp等)操作文檔,最終生成一份完整報告。

  例如帆軟報表服務路徑為http://localhost:8075/WebReport/ReportServer,傳遞參數reportlets可指定要訪問的報表路徑,傳遞給該報表的參數可繼續通過paramname=paramvalue的格式追加到url上,使用HTTP Get請求該URL,則可訪問到報表。

  參數format指定輸出文件格式,可指定為pdf、doc、xls,輸出PDF、Word、Excel文件;需要注意的是,輸出的Word文件實質是RTF文件,如果需要用DocX等Office Open XML操作時,首先需要轉換格式,最好的方式莫過於使用微軟Word DCOM;同樣,Excel也是97-2003格式;報表輸出這方面來說,帆軟做的不夠好。

  請求報表:

  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);

  request.Method = "GET";

  HttpWebResponse response;

  try

  {

  response = (HttpWebResponse)request.GetResponse();

  }

  catch (Exception ex)

  {

  }

  if (response.ContentType != "application/pdf" && response.ContentType != "application/msword" && response.ContentType != "application/x-excel")

  {

  response.Close();

  }

  Stream stream = response.GetResponseStream();

  復制代碼

  寫到文件:

  int bufferSize = 2048;

  byte[] bytes = new byte[bufferSize];

  string fileSaveFolder;

  fileName = Guid.NewGuid().ToString();

  string fileSaveName = fileName + extName;

  string fileSavePath = fileSaveFolder + fileSaveName;

  FileStream fs = new FileStream(fileSavePath, FileMode.Create);

  int length = stream.Read(bytes, 0, bufferSize);

  while (length > 0)

  {

  fs.Write(bytes, 0, length);

  length = stream.Read(bytes, 0, bufferSize);

  }

  stream.Close();

  fs.Close();

  復制代碼(編輯:雷林鵬 來源:網絡)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM