zoukankan      html  css  js  c++  java
  • 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(); 
  • 相关阅读:
    服务监控信息到底是“主动推送”还是“被动扫描”???
    spring boot metrics信息推送开发
    spring boot +RabbitMQ +InfluxDB+Grafara监控实践
    "敏捷革命"读书笔记
    对于搞技术的人怎样针对自己看什么书
    HBase数据库相关基本知识
    spring cloud 微服务日志跟踪 sleuth logback elk 整合
    日志收集(ElasticSearch)串联查询 MDC
    关于” 记一次logback传输日志到logstash根据自定义设置动态创建ElasticSearch索引” 这篇博客相关的优化采坑记录
    记一次logback传输日志到logstash根据自定义设置动态创建ElasticSearch索引
  • 原文地址:https://www.cnblogs.com/mahongbiao/p/8569792.html
Copyright © 2011-2022 走看看