报表导出Word与Excel的实现

也算是做过不少报表导出了,最多的导出类型为Word与Excel两种。下面容我来分析一下这些导出的实现方式。 一、导出Word的实现 1、使用 freemarker模板实现 此种实现是最普遍的,预先按照最终的需要调整好一个doc格式的文件,填上相关数据后,将此doc格式的文件转换为Word格式的xml文件,再编辑xml文件,将需要替换的位置写上一些变量、循环判断逻辑等,在后台使用freemarker实现为其填充数据,并将此文件的后缀格式保存为doc类型。 优点: 1)实现简单、易于维护,推荐使用; 2)可借助于freemarker技术对相关字段进行格式化、逻辑处理等; 3)导出效果可与实际操作Word效果一致; 缺点: 1)导出的格式为doc类型(docx的格式简单试了一下不行,没有继续深入); 2)如果后期导出的样式需要调整将会很痛苦,相当于模板需要重新维护一次; 2、使用拼html标签代...

文章分类:经验分享 技术知识

根据JSON生成JavaBean

根据json格式数据生成一个javabean对象,首先这是一个简单的功能,但是要写出一个比较好的版本实际还是有些难点的,这里跟大家分享一种实现,基于fastjson、freemarker。 实现要求 1. json格式中可包括boolean类型、String类型、int类型、金额类型等常见类型; 2. json格式中可出现其它关联对象,包括其对象类型、集合类型; 3. 相关联的对象类不能作为一个单独的类创建,作为子类创建在内部; 4. 理论上支持无限极JSON对象格式(可能会出现子类、孙子类、重孙子类等); 测试示例 一.最简单的json对象创建 1.json文本 { "active": true, "date": "2016-12-20", "id": 1001, "money": 5.25, "name": "china" } 2.生成的Java类 package com.vo; im...

文章分类:经验分享 技术知识

网页中的录音实现方案

前几天逛了逛论坛,发现了一个网页中录音的实现方案,基于flash实现,即在页面中嵌入一个flash实现录音,然后将录音的文件上传至服务器中,可以搜索一下该组件FlashWavRecorder,给出我看到的原文地址:http://uikoo9.com/blog/detail/java-flashwavrecorder-new,文章中有github地址的源码下载,此为背景。 作为储备的知识,我觉得研究研究还是挺不错的,故将此代码整理整理,摘出来一份儿干净的代码跟大家分享出来。注:此组件的API并未研究,如需正式使用需关注下flash与后台上传时的细节问题。 下面给出运行效果、下载地址,如下: ...

文章分类:经验分享 技术知识

使用SMB/CIFS做文件服务器

背景介绍 SMB/CIFS组件是一种Java访问共享文件夹的实现,使用它也是可以很方便的管理上传下载的文件,先闲话一些别的吧。很久以前有遇到文件的上传下载时,很“单纯”的将文件写至servletContext.getRealPath("/files");目录下,然后就没有然后了,后来慢慢的将某个服务器的共享文件夹以磁盘映射的方式作为本地的磁盘进行访问,也就是说访问时以Z:\\shares......去访问共享文件......在之前的项目中新做的文件上传下载有要求写入一个服务器上,而使用的技术实现则是从一个老系统中迁移出来的,我还一直以为用到的实现时上传的文档服务器提供的接口,并未多想,如果不是前段时间又遇到此种问题了,或许也就没有下文了。最近我找了找它还真的是一个开源组件,基于smb协议的文件访问。 一般项目当中的文档管理,基本的功能是对文档目录的列表读取、文件(夹)的增删改查以及文件的上...

文章分类:经验分享 技术知识

将Java程序制作成exe文件

背景介绍 以前关注过一段时间的制作Java安装程序的实现,当时找的是install4j,也跟着教程实现了一下,给我的感觉就是过程太复杂了,业余了解一下就够了,而前段时间的制作俄罗斯方块的安装包时发现了exe4j的实现,感觉制作过程简单多了。现在说一下这两个软件给我的感觉:install4j感觉是重量级的,制作出的安装程序有下一步下一步的安装功能,跟一般软件的安装过程差不多,而exe4j貌似比较轻量级了,就是将一套程序包写入exe文件,直接双击打开exe文件就是程序的执行文件,无需下一步一下一步的安装了(了解的有点片面了,有不当之处可指出),可按自己所需进行选择。 最近有个需求决定使用swing实现,swing这种东西用的太少了,但是一直都没丢,时不时的还用它写个小玩意儿,所以面对使用swing做一个程序问题不大,而开发工具就使用熟悉的MyEclipse自带的插件,之后再找一套swing的皮...

文章分类:经验分享 技术知识

RandomAccessFile分割、还原文件(三)

背景介绍 关于前面两篇分割、还原文件的介绍,示例代码运行无误,但发现遇到分割3.xxG大小的操作系统文件时,却出现错误,错误原因为:Exception in thread "main" java.io.IOException: Negative seek offset 意思是说指针位置指向的错了,后来分析半天代码发现在代码实现中定义的分割文件的大小用的int类型,而在参与指针位置计算的时候有long类型的参与,但结果还是ing类型的,可能是int越界吧,成了负数导致,将int修改为long类型的即可。另外还有一个地方计算分割文件的开始、结束位置时采用另外一种运算,感觉这种begin、end范围更加科学,代码参考如下: package com; import java.io.BufferedOutputStream; import java.io.File; import java.io.F...

文章分类:经验分享 技术知识

RandomAccessFile

RandomAccessFile分割、还原文件(二)

背景介绍 前文中有一个简单版本的示例,基于彼示例,我做了进一步的优化调整,添加了分割文件的配置属性文件,属性文件一般可以是properties类型的,这里我就采用序列化文件,直接将一个存储好数据的对象写入文件,还原文件时再读入此文件作为还原的标准配置。 记录的属性有以下几个: fileName源文件名称:用于还原文件时恢复分割前的文件原名称; fileLength源文件大小:可用于还原文件前检查现有的还原目录的可用磁盘是否充足; fileSuffix源文件后缀:作用不大可作为预留属性值; partList分割的碎片:按照先后顺序存储所有被分割的碎片文件,还原文件时按照此组数据的先后顺序进行先后写入; 原理同前一篇文章相同,只是功能越完善需要添加的代码和逻辑也就越多了,参考代码如下: 代码实现 1.文件分割 package com; import java.io.BufferedOutput...

文章分类:经验分享 技术知识

RandomAccessFile

RandomAccessFile分割、还原文件(一)

背景介绍 想写个例子去分割大文件已经很久了,由于一些问题始终没有搞明白,故一直没去做,然而今天还是艰难的下手了,实现了这个功能示例,并且稍微完善了一下,基于RandomAccessFile随机读取文件,分割、还原文件等动作。本篇文章主要关注一下一个简单版本的分割文件、合并文件的核心模块处理逻辑,目的在于像我一样渣渣水平的人可以从基础入门,对于一些运算逻辑太复杂,或者是封装的太深的代码不太容易对于这块儿的新手儿来理解,所以本篇我重点在于精简代码,并给出相关的注释,在异常的处理上就放宽松点吧,文件的分割网上示例非常多,我理解的文件分割与我们数据库的数据分页原理类似,都是获取到总记录数total,再根据每页显示数据条数pageSize,先得出一共有多少页totalPage,再从1开始循环至totalPage,将每页的数据读取出来,而文件分割是一样的,只不过是将每页的字节单独存储为一个文件,参考代...

文章分类:经验分享 技术知识

RandomAccessFile

JSP自定义标签动态sql条件处理

这是一些很早之前写的代码了,一来丰富一下系统的内容量,二来觉得这些个实现方法特别的好,坚决不能丢了,近期将其整理整理,本篇着重的讲一下查询标签中的sql处理方式。 既然是处理sql,显然离不开要说道dao层的实现了,可以在关于系统栏目下找到关于系统持久层解决方案中的相关描述,也可就只看此篇对于查询标签的sql处理。 处理sql的相关问题: 1、sql的参数传递问题,如果直接在页面上sql页面上是否方便维护逻辑? 查询sql语句中包括一些基本的参数可以通过el表达式${param.xxx}的方式进行获取,可拼接在sql语句当中,参数值获取很方便,不对页面的美观造成影响,参考效果如下: <my:queryOne sql="SELECT userid AS 'userId' , realname 'realName' FROM sysuser WHERE userId = ${param.use...

文章分类:经验分享 技术知识

JSP自定义标签

JSP自定义标签查询列表分页

基本描述 在说这个查询列表标签之前,我认为有必要先看看另一篇文章,查询一条明细数据的标签、查询列表标签,地址就不给出了,应该就在上下一篇。先说一说一个查询分页的页面功能吧,总体的分为3个部分,有查询条件、数据明细、分页控制,其中查询条件理论上也是不可少的,既然有的话,我们在处理查询条件的时候方式也是多种多样的,别的方式就不讨论了,直接上一个最靠谱的,反正在url上进行传递的个人不是很喜欢;另外处理数据明细上要支持逻辑判断;分页控制就比较常见了,给出当前页、共页数,这些参数,都是可以随便调整控制的,参考如下图: 先给出参数定义,根据参数与查询需求给出逻辑实现图,围绕图再介绍一下每个参数的意义,图片参考如下: 参数说明 sql:查询列表的sql语句,内置了几种查询方式,支持特定的表达式来实现动态查询; sqlKey:sql语句的映射,可配置sql,然后自己提供映射实现,与sql参数两者选其一中...

文章分类:经验分享 技术知识

JSP自定义标签
本站信息

 运营时间: 天

 用户数量: 人

 文章数量: 篇

 评论数量: 条

 点赞个数: 个

 最后更新:

标签云