易截截图软件、单文件、免安装、纯绿色、仅160KB

Java利用xml将大批量数据导出到excel的一个方法

笔者在Java开发中常常会遇到将数据库数据导出到Excel的要求,比如在我的一个项目中,客户要求所有查询结果都可以导出到Excel,对于数据量不大的(几万条),这比较容易实现,但对于数据量比较大的(几十万及以上,具体要看导出内容的字段个数和长短),则在数据库查询和生成excel文件上都会有麻烦。
以我在实际项目中的一个表为例,Oracle 10g数据库,这个表中有40多个字段,内容是姓名、年龄、性别、地址、生日、职业、工作单位等个人信息,要求导出20多个字段。导出为HTML的表格的话,即数据放在<table><tr><td>中,1万条数据大约需要7.5-8M。
对于数据库查询,可以通过以下二个方法解决:
一、采用分页查询。根据数据库服务器性能和数据库操作频繁程度,决定每页大小,比如每页5000到10000行,每次查询出一页,然后生成excel文件。这种方法的缺点是需要多次查询数据库,而数据库分页查询因需要使用临时表,所以比较耗性能。
二、采用中间表。一次性将查询结果放到中间表中,可采用“select ...into...”,再从中间表中一部分一部分地取出来生成excel。每取一部分,就可以删除它,或者标记为“已导出”。这种方法需要操作中间表,过程麻烦一些,但效率好。
下面是生成excel的几种方法(Office 2000以上实现):
一、采用POI或者JXL组件生成EXCEL格式的文件。这种方式可以很好地控制内容的格式,缺点是这二种方式都是将EXCEL文件整个加载到内存中进行处理的,向excel追加数据时,也要先全部加载原文件,当数据量大时,生成的EXCEL文件会很大,可能会因占内存太多而导致WEB服务器内存溢出。
二、利用Excel文件支持HTML格式的功能,即系将html文件后缀名改为.xls,就可以用excel打开。这是最简单的方法,在Jsp中只要将http头改一下,让客户端浏览器下载生成的.xls文件,而不是让浏览器打开html文件就可以了。Jsp文件代码如下:
view plaincopy to clipboardprint?
<%@ page language="java" contentType="text/html; charset=GBK" %> 
<%  
 String fileName = "export_file_name.xls";//下载对话框的保存文件名  
 response.setHeader("Content-disposition", "attachment; filename="+ fileName);  
%> 
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmln


相关文档:

[备份]java中XML解析利器 dom4j的使用简介


要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/
目前最新dom4j包下载地址: http://nchc.dl.sourceforge.net/sourceforge/dom4j/dom4j-1.6.1.zip
解开后有两个包,仅操作XML文档的话把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的话还需要加入包jaxen-1.1-beta-7.jar.
以下 ......

Java创建对象的三种方法

一、new
  使用java的关键字new来创建对象实例。构造函数链中的所有构造函数都会被自动调用。
     Java代码:
    CreateInstance  instance = new  CreateInstance  ();
二、clone
      构造函数不被自动调用。
  Java代码:  ......

java生成EXCEL表格(POI vs JXL)

java生成excel表格,以前只知道POI,这是Apache的开源项目,本来是一套的,包括word,但是因为word的复杂性,以及开发人员的缺乏,好像基本停滞了。只有Excel做的还算比较完整,用起来比较轻松。
    后来因为做项目的关系,知道了还有个JXL(java excel),也是个开源项目,用起来的感觉跟POI很类似,因为 ......

解析XML时DTD的处理 解析时忽略,生成XML文件时加上


一、解析XML文件时,遇到DTD的定义要怎么办?
    下面这段代码是ibatis配置文件,用w3c Dom(其实任意一种解析方式都是这样)都会从http://www.ibatis.com/dtd/sql-map-config-2.dtd
 这
个地址找对应的DTD文件进行校验,如果因特网上这个地址不存在的话,就会报 java.net.ConnectException:
Con ......

XMLHttpRequest 异步处理XML典型应用

声明对象实例
var xmlhttp = false;
//产生一个XMLHttpRequest对象实例
getHTTPRequestObject();
function getHTTPRequestObject()
{
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlhttp = new ActiveXObject("Micr ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号