一、帆软报表简介

报表工具中,帆软报表相比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. 删除apache注册表

    将Apache服务从系统服务中移除: 其实很多服务我们卸载软件后还会残留在服务列表里面,今天给大家提供个删除残留服务的方法注册表清除法. 1.在我的电脑上右键管理,找到看看那些服务是你不需要的,或是残 ...

  2. XAMPP禁止目录浏览的方法

    XAMPP是目前比较流行Web服务器套件,集成了Apache.MySQL.PHP.PERL.FTP等各种软件包.但是细心的人可以发现,XAMPP安装完成后,默认是可以目录浏览的,这有些不安全.如果需要 ...

  3. JBoss AS7(Application Server 7)的Standalone模式和Domain模式

    JBoss AS7(Application Server 7)支持两种引导模式:standalone和domain(域). Standalone模式对于很多应用,并不需要domain管理能力,JBos ...

  4. CSS 圣杯布局升级版---多个固定宽度一个自适应宽度

    1.一个div固定,一个div自适应宽度.两种情况,固定在左或者在右. HTML: <div class="box1"> <div class="mai ...

  5. Yii中DataProvider的使用

    1,DataProvider 什么是数据提供者 数据提供者可以获取数据,并提供给其他组件或页面使用 可以获得列的数据进行分页和排序 经常用来给数据小部件提供数据,方便用户互动地进行数据的分页与排序 实 ...

  6. 字典树trie

    字典树经常用于单词搜索,现在网络引擎中也应用了trie树: public class Trie{ private int SIZE = 26; private TrieNode root; Trie( ...

  7. 老男孩Python全栈开发(92天全)视频教程 自学笔记06

    day6课程内容: tuple(元祖) 创建元祖: tup0=() #没有元素的一个元祖 tup1=(20,)#只有一个元素的元祖 元祖可读,不可修改 Dictionary(字典)#Python里唯一 ...

  8. ContentProvider工作过程

    ContentProvider启动过程(通过query方法触发) ContentProvider.acquireProvider--> ApplicationContentResolver.ac ...

  9. uva10976

    数学题. 1. 因为 1/k = 1/x +1/y 所以 1/k > 1/y 那么 y > k 2 . 因为 x >= y 所以 1/k - 1/y <= 1/y 那么 y & ...

  10. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'smvch'

    1.错误描述 INFO:2015-05-01 14:20:44[main] - Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDat ...