一、帆软报表简介

报表工具中,帆软报表相比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 = ;
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, , bufferSize);
while (length > )
{
fs.Write(bytes, , length);
length = stream.Read(bytes, , bufferSize);
}
stream.Close();
fs.Close();

C#服务器端生成报告文档:使用帆软报表生成Word、Pdf报告的更多相关文章

  1. 导出swagger2生成的文档

    百度了好多篇用法,没法用.特此记录一下 一.下载项目 下载https://github.com/Swagger2Markup/spring-swagger2markup-demo下的项目,保存,注意文 ...

  2. 浅析如何在Nancy中使用Swagger生成API文档

    前言 上一篇博客介绍了使用Nancy框架内部的方法来创建了一个简单到不能再简单的Document.但是还有许许多多的不足. 为了能稍微完善一下这个Document,这篇引用了当前流行的Swagger, ...

  3. c语言小程序以及java生成注释文档方法

    c语言小程序:sizeof和strlen() sizeof运算符以字节为单位给出数据的大小,strlen()函数以字符为单位给出字符串的长度,字符和字节不是一回事. char类型用于存储字母和标点符号 ...

  4. asp.net core web api 生成 swagger 文档

    asp.net core web api 生成 swagger 文档 Intro 在前后端分离的开发模式下,文档就显得比较重要,哪个接口要传哪些参数,如果一两个接口还好,口头上直接沟通好就可以了,如果 ...

  5. drf频率源码、自动生成接口文档、JWT

    目录 一.drf频率源码分析 二.自动生成接口文档 1 安装依赖 2 设置接口文档访问路径 3 文档描述说明的定义位置 4 访问接口文档网页 三.JWT 1 JWT基本原理 1.1 header 1. ...

  6. 注释生成Api文档

    1.开发背景 最近一直在写dubbo接口,以前总是用word文档写接口描述然后发给别人.现在太多了,而且跟别人对接联调的人家急着用,根本没时间去写word文档.那就想想怎么用doc文档注释自动生成接口 ...

  7. [.NET] WebApi 生成帮助文档及顺便自动创建简单的测试工具

    ==========最终的效果图========== ==========下面开始干活:生成帮助文档========== 一.创建 WebApi 项目 二.找到 HelpPageConfig.cs 并 ...

  8. 利用sphinx为python项目生成API文档

    sphinx可以根据python的注释生成可以查找的api文档,简单记录了下步骤 1:安装 pip install -U Sphinx 2:在需要生成文档的.py文件目录下执行sphinx-apido ...

  9. python快速生成注释文档的方法

    python快速生成注释文档的方法 今天将告诉大家一个简单平时只要注意的小细节,就可以轻松生成注释文档,也可以检查我们写的类方法引用名称是否重复有问题等.一看别人专业的大牛们写的文档多牛多羡慕,不用担 ...

随机推荐

  1. Android -传统蓝牙通信聊天

    概述 Android 传统蓝牙的使用,包括开关蓝牙.搜索设备.蓝牙连接.通信等. 详细 代码下载:http://www.demodashi.com/demo/10676.html 原文地址: Andr ...

  2. JAVA受检异常和非受检异常举例

    受检异常和非受检异常(运行时异常)举例 RuntimeException(即非受检异常): RuntimeException在默认情况下会得到自动处理,所以通常用不着捕获RuntimeExceptio ...

  3. ubuntu终端常用命令及solarized配色(护眼)

    ubuntu终端常用命令及solarized配色(护眼) ubuntu 终端 命令 1.常用命令 ctrl + l - 清屏 . cLear  ctrl + c - 终止命令.   ctrl + d ...

  4. JPA数据懒加载LAZY配合事务@Transactional使用(三)

    上篇博文<JPA数据懒加载LAZY和实时加载EAGER(二)>讲到,如果使用懒加载来调用关联数据,必须要保证主查询session(数据库连接会话)的生命周期没有结束,否则,你是无法抽取到数 ...

  5. PHP操作Redis队列的方法

    入队: <?php $redis = new Redis(); $redis->connect('127.0.0.1',6379); while(True){ try{ $value = ...

  6. 高通ASOC中的codec驱动

    ASOC的出现是为了让codec独立于CPU,减少和CPU之间的耦合,这样同一个codec驱动就无需修改就可以匹配任何一款平台. 在Machine中已经知道,snd_soc_dai_link结构就指明 ...

  7. Egret学习笔记 (Egret打飞机-6.实现敌机飞起来)

    有了子弹,总得有敌人来打吧,不然游戏有啥意思呢?今天我们来实现敌机从屏幕上边往下飞 参考微信打飞机游戏里面,敌机分为3种 1是特小飞机,2是小飞机,还有一种就是大飞机 面向对象编程提倡抽象,实现代码复 ...

  8. Java Enum总结

    枚举类型 枚举类型是Java5新增的特性之一,枚举是一种特殊类型的类,其枚举的每一个值 都是该枚举类的一个实例.枚举类型是作为Java语言的一部分,是完全类型安全的, 编译器会帮助我们检查枚举类型的正 ...

  9. HDFS读写过程

    HDFS的读写过程: 读过程: Client收到用户的读请求——client拿着path向namenode请求文件或者block的datanode列表——client从返回的datanode列表中选择 ...

  10. centos下利用qemu搭建arm模拟器

    有点繁琐,整理一下,系统环境centos6.6,虚拟机以及实际系统中测试通过. 一.交叉编译器的下载与安装1.下载地址:http://blog.csdn.net/dldw8816/article/de ...