public ActionForward outInckAdslDevNeLogExcel(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception{
String title = java.net.URLEncoder.encode("EXCEL标题", "UTF-8")+ ".xls";
response.setHeader("Content-disposition", "attachment;filename="+title);
String dslamip = request.getParameter("a");
String basip = request.getParameter("b");
String basport = request.getParameter("c");
String pvlan = request.getParameter("d");
String cvlan1 = request.getParameter("e");
String cvlan2 = request.getParameter("f");
String account1 = request.getParameter("g");
String account2 = request.getParameter("h");
String operaid = request.getParameter("OPERAID");
String operatime1 = request.getParameter("OPERATIME1");
String operaname = java.net.URLDecoder.decode(request.getParameter("OPERANAME"),"utf-8");
String operatime2 = request.getParameter("OPERATIME2");
String loginid = request.getParameter("LOGINID");
String operatype = java.net.URLDecoder.decode(request.getParameter("OPERATYPE"),"utf-8");
List titleList = new ArrayList();
titleList.add("a);
titleList.add("b");
titleList.add("c");
titleList.add("d");
titleList.add("e");
titleList.add("f");
titleList.add("g");
titleList.add("h");
titleList.add("时间");
titleList.add("操作员工号");
titleList.add("操作员登录ID");
titleList.add("操作员名称");
titleList.add("操作类型");
account2,operaid,operatime1,operatime2,loginid,operatype,operaname);
ResultWrap rw = dao.outInckAdslDevNeLogExcel(a, b, c, d, e, f,h,operaid,operatime1,operatime2,loginid,operatype,operaname);
if (rw != null){
TPubFunction.WriteExcel(titleList,rw,20, response);
}
return null;
}
TPubFunction处理类
package com.regaltec.inss.inck.inckutil;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.Reader;
import java.sql.Clob;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.zip.GZIPOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import com.regaltec.ccatsida.common.database.CommonRecord;
import com.regaltec.ccatsida.common.database.ResultWrap;
public class TPubFunction {
/**
* 每页显示数据的大小
*/
public static int iPageSize= 1000;
/**
* 将Clob字段转换成String
* @param clob
* @return
*/
public final static String clob2String(Clob clob) {
if (clob == null) {
return "";
}
StringBuffer sb = new StringBuffer(65535);// 64K
Reader clobStream = null;
try {
clobStream = clob.getCharacterStream();
char[] b = new char[60000];// 每次获取60K
int i = 0;
while ((i = clobStream.read(b)) != -1) {
sb.append(b, 0, i);
}
} catch (Exception ex) {
sb = null;
} finally {
try {
if (clobStream != null)
clobStream.close();
} catch (Exception e) {
}
}
if (sb == null)
return "";
else
return sb.toString();
}
/**
* 将字符 null 用空格替换
*
* @param AString
* 传入字符
* @return
*/
public static String formatStringNull(String AString) {
if (AString == null) {
return "";
} else {
return AString;
}
}
/**
* 将输入流转换成字节
*
* @param is
* 输入流
* @return
* @throws Exception
*/
public static byte[] getBytes(InputStream is) throws Exception {
byte[] data = null;
Collection chunks = new ArrayList();
byte[] buffer = new byte[1024 * 1000];
int read = -1;
int size = 0;
while ((read = is.read(buffer)) != -1) {
if (read > 0) {
byte[] chunk = new byte[read];
System.arraycopy(buffer, 0, chunk, 0, read);
chunks.add(chunk);
size += chunk.length;
}
}
if (size > 0) {
ByteArrayOutputStream bos = null;
try {
bos = new ByteArrayOutputStream(size);
for (Iterator itr = chunks.iterator(); itr.hasNext();) {
byte[] chunk = (byte[]) itr.next();
bos.write(chunk);
}
data = bos.toByteArray();
} finally {
if (bos != null) {
bos.close();
}
}
}
return data;
}
/**
* 将日期时间型转换成日期型字符
*
* @param ADateStr
* @return
*/
public static String DateTimeToDateStr(String ADateStr) {
return ADateStr.substring(0, 10);
}
/**
* 格式化字符串为日期时间型
*
* @param ADateStr
* @return
*/
public static String formatStringDateTime(String ADateStr) {
return ADateStr.substring(0, 16);
}
/**
* 将8859_1的字符串转换成GBK字符
*
* @param s
* @return
*/
public static String toChinese(String s) {
String sRet = null;
if (s == null) {
sRet = "";
} else {
try {
sRet = new String(s.getBytes("ISO8859-1"), "gb2312");
} catch (Exception e) {
System.err.println("字符ISO8859-1转换成gb2312出错");
}
}
return sRet;
}
/**
* 判断浏览器是否支持压缩的Web页面
* @param request
* @return
*/
public static boolean isGzipSupported(HttpServletRequest request) {
String encodings = request.getHeader("Accept-Encoding");
return ((encodings != null) && (encodings.indexOf("gzip") != -1));
}
/**
* 返回压缩输出流
*
* @param response
* @return
* @throws IOException
*/
public static PrintWriter getGzipWriter(HttpServletResponse response)
throws IOException {
return (new PrintWriter(
new GZIPOutputStream(response.getOutputStream())));
}
/**
* 获取系统当前时间
* @return
*/
public static String getSystemDateTime() {
Date dt = new Date();
SimpleDateFormat sftime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sftime.format(dt);
}
/**
* 获取系统当前日期
* @return
*/
public static String getSystemDate() {
Date dt = new Date();
SimpleDateFormat sftime = new SimpleDateFormat("yyyy-MM-dd");
return sftime.format(dt);
}
/**
* 返回指定时间加分钟后的时间
* @param aDateTime 指定时间
* @param aMinute 加指定分钟数
* @return
* @throws ParseException
*/
public static String addDateTime(String aDateTime,int aMinute) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date aTaskStartTime = sdf.parse(aDateTime);
long Time=(aTaskStartTime.getTime()/1000)+aMinute*60;
aTaskStartTime.setTime(Time*1000);
return sdf.format(aTaskStartTime);
}
/**
* 判断两个时间的大小
* @param sDateStart
* @param sDateEnd
* @return false表示sDateStart>=sDateEnd,true表示sDateEnd>sDateStart
* @throws ParseException
*/
public static boolean equalsDate(String sDateStart,String sDateEnd) throws ParseException{
boolean aFalg = false;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date aDateStart = sdf.parse(sDateStart);
Date aDateEnd = sdf.parse(sDateEnd);
int result = aDateStart.compareTo(aDateEnd);
if (result > 0) aFalg = true;
return aFalg;
}
/**
* 导出Excel
* @param ATitle标题
* @param AQueryResult 数据集
* @param response 当前会话
* @throws Exception
*/
public synchronized static void WriteExcel(List ATitle,ResultWrap AQueryResult,int aColumnWidth,
HttpServletResponse response) throws Exception{
WritableWorkbook writbook = null;
writbook = Workbook.createWorkbook(response.getOutputStream());
WritableSheet sheet = writbook.createSheet("Sheet1", 0);
Label label = null;
boolean bFalg = false;
if (ATitle.size() > 0) bFalg = true;
for (int i = 0; i < ATitle.size(); i++){
label = new Label(i, 0, ATitle.get(i).toString());
sheet.addCell(label);
sheet.setColumnView(i, aColumnWidth);
}
int iStart = 0;
if (bFalg) iStart = 1;
for(int i = 0; i < AQueryResult.getrsTotalrows(); i++){
CommonRecord cr = AQueryResult.getRecord(i);
for (int j = 0; j < cr.getFieldCount(); j++) {
int type = cr.getType(j+1);
if (type == 12)
label = new Label(j, i + iStart, cr.getString(j+1));
if (type == 2)
label = new Label(j, i + iStart, Integer.toString(cr.getInt(j+1)));
sheet.addCell(label);
}
}
writbook.write();
writbook.close();
writbook = null;
AQueryResult = null;
}
}
outInckAdslDevNeLogExcel方法:
public ResultWrap outInckAdslDevNeLogExcel(String dslamip,String basip,String basport,
String pvlan,String cvlan1,String cvlan2,String account1,String account2,String operaid,String operatime1,String operatime2,String loginid,String operatype,String operaname)throws Exception{
StringBuffer aSql = new StringBuffer();
aSql.append("Select t.a,t.b,t.c,");
aSql.append("t.d,t.e,f,t.g,t.h,t.operaTime,t.operaId,t.loginID,t.operaName,t.operaType ");
aSql.append("from table_to_excel t Where 1=1");
aSql.append(getInckAdslDevNeLogParam(operaid,operaname,loginid,operatime1,operatime2,operatype));
aSql.append(" order by t.bas_ip,t.bas_port,t.pvlan");
return dbInck.querySql(aSql.toString());
}
getInckAdslDevNeLogParam条件查询方法:
private String getInckAdslDevNeLogParam(String operaid,String operaname,String loginid,String operatime1,
String operatime2,String operatype){
StringBuffer aSqlParam = new StringBuffer();
if (!"".equals(TPubFunction.formatStringNull(operaid)))
aSqlParam.append(" and OPERAID='"+operaid+"'");
if (!"".equals(TPubFunction.formatStringNull(operaname)))
aSqlParam.append(" or OPERANAME like '%"+operaname+"%'");
if (!"".equals(TPubFunction.formatStringNull(loginid)))
aSqlParam.append(" or LOGINID='"+loginid+"'");
if (!"".equals(TPubFunction.formatStringNull(operatime1)))
aSqlParam.append(" and to_date(t.operatime,'yyyy-mm-dd hh24:mi:ss') >= to_date('"+operatime1+"','yyyy-mm-dd hh24:mi:ss')");
if (!"".equals(TPubFunction.formatStringNull(operatime2)))
// aSqlParam.append(" and to_date('"+operatime2+"','yyyy-MM-dd')");
aSqlParam.append(" and to_date(t.operatime,'yyyy-mm-dd hh24:mi:ss')<=to_date('"+operatime2+"','yyyy-mm-dd hh24:mi:ss')");
if (!"".equals(TPubFunction.formatStringNull(operatype)))
try {
aSqlParam.append(" and OPERATYPE like '%"+java.net.URLDecoder.decode(operatype,"utf-8")+"%'");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return aSqlParam.toString();
}
分享到:
相关推荐
Java导出Excel是Java开发中常见的需求,尤其是在数据处理和报表生成方面。Apache POI库是Java领域中广泛使用的工具,它允许开发者读写Microsoft Office格式的文件,包括Excel(.xlsx和.xls)。本篇文章将深入讲解...
java导出excel超过65536条记录出错 java导出excel超过65536条记录出错 java导出excel超过65536条记录出错 java导出excel超过65536条记录出错
本资源提供的"java导出excel复合表头简单实例"是针对Java开发者的一个实用教程,特别是对于那些刚开始接触Java Excel导出功能的新手。这个实例将帮助你理解如何在Excel中创建并设置复杂的表头结构,使得数据的呈现...
Java导出Excel是Java开发中常见的需求,尤其在数据分析、报表生成或数据交换场景中。本示例资源提供了一个RAR压缩包,包含了实现这一功能的源代码,主要讲解了两个核心部分:一是如何将数据写入Excel文件并保存在...
本示例涉及的主题是“java导出excel复杂表头”,这意味着我们要处理的不是简单的单级表头,而是包含多级或者多层次结构的表头。在描述中提到这是一个可以直接运行的Java工程,但需要进一步改造为Web下载服务。 首先...
java导出Excel 时候 相同行合并(可合并多列); 已测试通过;
Java导出Excel是Java开发中常见的一项任务,特别是在数据分析、报表生成或数据交换等领域。Apache POI是一个流行的开源库,允许Java程序读取和写入Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。在本场景...
java导出excel
压缩包中的文件"java导出excel"很可能包含了使用这两种库的示例代码或教程资源,你可以通过解压并学习这些文件来深入理解如何在Java中实现数据到Excel的导出。记得在实际使用时,要根据项目需求选择合适的技术,并...
"Java 导出Excel.zip"这个压缩包文件提供了一个Java实现的解决方案,允许开发者以全泛型的方式方便地导出数据到Excel文件,而且支持动态创建不同数量的sheet页面,增强了灵活性。 1. **Java与Excel交互**:Java中...
Java导出Excel在Web项目中的应用是一个常见的需求,特别是在企业级开发中,为了方便数据的存储、分析和传输,往往需要将数据库中的数据导出为Excel格式。下面将详细介绍这个主题,包括相关技术和实现步骤。 1. **...
该工具类实现java导出树形结构的方法,并未采用excel分组功能实现,而是根据树节点显示层级设置excel样式。针对easyUi,treeGrid开发的导出excel功能。方法简便实用、性强、通俗易懂。项目中亲测,no problem。
java导出excel例子,使用的是poi,可以分sheet导出,可以导出txt
在压缩包中的"java导出Excel"文件可能是项目的源代码,包含了实现上述功能的具体Java类和方法。分析这些源码可以帮助我们更深入地理解如何在实际项目中应用这些知识点。 总结来说,这个项目展示了如何在Java环境中...
资源描述:一个使用java做的导出数据,并且可以在excel表生成折线图的工具类,使用简单操作方便。
### Java导出Excel知识点 #### 一、导出Excel的核心技术背景 在现代软件开发过程中,数据导出是一项常见的需求,尤其是将数据从数据库或内存中的数据结构导出到Excel文件,这为用户提供了便捷的数据查看与分析方式...
总之,Java导出Excel涉及到的主要知识点包括:Apache POI库的使用,Workbook、Sheet、Row和Cell对象的创建和操作,以及数据写入和文件输出。希望这个示例能帮助你理解并开始在自己的项目中实现Excel导出功能。
以下是一些关于“java导出excel”的核心知识点,以及如何实现这一功能的详细解释。 1. **Apache POI库**: Apache POI是一个流行的开源库,专门用于读写Microsoft Office格式的文件,包括Excel。使用POI,开发者...
* 导出excel(利用反射机制) * String[] title = {"订单号","商品名称","商品价格","创建时间"}; * String[] field = {"orderNum","productName","productPrice","createTime"}; * ExportTools.export("sellJoin...
在Java编程中,导出...总之,Java导出Excel涉及到的内容广泛,从选择合适的库到处理各种复杂需求,都需要开发者具备扎实的编程基础和对Excel文件格式的理解。通过不断实践和学习,你可以轻松应对各种Excel处理任务。