紧急求救,jsp页数据导出到EXCEL时要动态生成EXCEL文件名。 各位高手好:如何才能在jsp页数据导出到EXCEL时要动态生成EXCEL文件名。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 晕,系统时间呀,或者随机生成字符组合.取系统时间最方便~java.util.Date date = new java.util.Date();java.text.SimpleDateFormat sd = new java.text.SimpleDateFormat("yyyyMMddHHmmss");String fileName = sd.format(date); 如何才能在把jsp页数据导出到EXCEL时动态生成EXCEL文件名。 WritableWorkbook book = Workbook.createWorkbook(out); WritableSheet sheet = book.createSheet(SheetName, 0); //生成工作表,参数0表示这是第一页 Label label; OraDAOFactory OraDAO = new OraDAOFactory(); Connection conn = null; Statement stmt = null; ResultSet rs = null; ResultSetMetaData rsmd; StringBuffer select = new StringBuffer();//存显示字段 int numCols = 0;//显示字段个数 int i = 0; //单元格行 int j = 0; //单元格列 try { conn = OraDAO.getConnection(); jxl.write.WritableFont wfc = new jxl.write.WritableFont( WritableFont.TIMES, 10, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLUE); jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc); /** * 标题写入 */ String QuerySql = "select * from TABLE_VIEW where TABLENAME='TZ_PROPRIETOR' "; stmt = conn.createStatement(); rs = stmt.executeQuery(QuerySql); label = new Label(j, i, "更新时间", wcfFC); sheet.addCell(label); j++; while (rs.next()) { label = new Label(j, i, StrPro.getNotNullStr(rs.getString(3)), wcfFC); sheet.addCell(label); j++; select.append(StrPro.getNotNullStr(rs.getString(4))); select.append(","); } 你给我的是动态生成excel工作表的标题,我要的是导出的excel的文件名能动态生成。谢谢!!! 我现在能导出EXCEl表格,而且正确,但是保存EXCEL文件时,文件名是系统随机 给的,与EXCEL表的标题名不符,还得改名,容易忘,我想根据表标题动态生成EXCEL表名,有代码吗?? public static void writeExcelfour(OutputStream os, int columns,ResultSet rs1,String bmbm,String excelsheet) throws Exception//columns{jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os);jxl.write.WritableSheet ws = wwb.createSheet(excelsheet, 0);int i = 0;////i=行jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD, false,UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);//文本字体jxl.write.WritableFont title = new jxl.write.WritableFont(WritableFont.ARIAL, 20, WritableFont.BOLD, false,UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);//题目字体jxl.write.WritableCellFormat wctitle = new jxl.write.WritableCellFormat( title);wctitle.setAlignment(jxl.format.Alignment.CENTRE);//题目 jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);jxl.write.DateFormat datef = new jxl.write.DateFormat("yyyy-MM-dd HH:mm:ss"); //日期jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(datef);wcfDF.setAlignment(jxl.format.Alignment.LEFT);java.text.SimpleDateFormat ymd=new java.text.SimpleDateFormat("yyyy-MM");//本机时间String dtime=ymd.format(new java.util.Date());//ws.mergeCells(0,0,6,0);jxl.write.Label labelA = new jxl.write.Label(0, 0, "采集站", wctitle);//列,行ws.addCell(labelA); // System.out.println(bmbm);jxl.write.Label labelD = new jxl.write.Label(0, 1, "导出日期:",wcfFC);//列,行ws.addCell(labelD); ws.mergeCells(1,1,3,1);ws.setColumnView(1,15);//第一个参数为列,第二个参为列宽ws.setColumnView(2,13);//ws.setColumnView(3,25);//ws.setColumnView(4,20);//ws.setColumnView(6,16);//jxl.write.DateTime labelD2 = new jxl.write.DateTime(1, 1, new java.util.Date(),wcfDF); ws.addCell(labelD2); jxl.write.Label labelB = new jxl.write.Label(0, 2, "部门编号", wcfFC);//列,行ws.addCell(labelB); jxl.write.Label labelB2 = new jxl.write.Label(1, 2, "部门名称", wcfFC);ws.addCell(labelB2);jxl.write.Label labelB3 = new jxl.write.Label(2, 2, "采集站编号", wcfFC);ws.addCell(labelB3);jxl.write.Label labelB4 = new jxl.write.Label(3, 2, "采集站名称", wcfFC);ws.addCell(labelB4);jxl.write.Label labelB5 = new jxl.write.Label(4, 2, "备注", wcfFC);ws.addCell(labelB5);jxl.write.Label labelB6 = new jxl.write.Label(5, 2, "操作人", wcfFC);ws.addCell(labelB6);jxl.write.Label labelB7 = new jxl.write.Label(6, 2, "操作时间", wcfFC);ws.addCell(labelB7);// System.out.println("ok");do {String czsj=""; if(rs1.getString("czsj")==null){}else{czsj=rs1.getString("czsj").substring(0,16);} for (int j = 0; j < columns; j++){if(j==0){jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("bmbm"));ws.addCell(labelC); }if(j==1){jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("bmmc"));ws.addCell(labelC); }if(j==2){jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("cjbh"));ws.addCell(labelC); }if(j==3){jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("cjmc"));ws.addCell(labelC); }if(j==4){jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("beiz"));ws.addCell(labelC); }if(j==5){jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("czrm"));ws.addCell(labelC); }if(j==6){jxl.write.Label labelC = new jxl.write.Label(j, i+3, czsj);ws.addCell(labelC); }}i = i + 1; }while (rs1.next());rs1.close();wwb.write(); wwb.close();} 用 gzmingyan(广州明燕),这位仁兄的代码生成文件名,我用流下载下来的。java.util.Date date = new java.util.Date();java.text.SimpleDateFormat sd = new java.text.SimpleDateFormat("yyyyMMddHHmmss");String fileName = sd.format(date);try{ File f2=new File(fileName+".xls"); fis=new FileInputStream(f2); bis=new BufferedInputStream(fis); fos=response.getOutputStream(); bos=new BufferedOutputStream(fos); int i; while ((i=bis.read()) != -1) { bos.write(i); }}catch(Exception e){ out.println(e.getMessage());} finally { if (bis != null) bis.close(); if (bos != null) bos.close(); if (fos != null) fos.close(); if (fis != null) fis.close();} 你的代码我看了,那只是在服务器上生成个Excel文档,而没有下载到客户端啊。 还有一点你在创建的时候就可以给它启个名字的。WritableWorkbook wwb = Workbook.createWorkbook(new File(fileName+".xls")); 超链接传参数问题~~~~ jfreechart中如何设置让x轴和y轴的0刻度点相交? jsp中如何使用session? java 正则表达式的应用场景,用法,返回结果等。有经验的都请留下一二。 向高手求救:UBB代码得转换问题!!! 请教各位如下格式的XML 如何解析 SmartUpload中无法取出中文字符串 从一个jsp的查询网址导出查询到的数据 radio的value怎么保存不了 jsp如何实现往客户端写数据文件 请教一个单服务器最大能支撑多少用户并发访问 求:动态从数据库取出数据,然后在JSP页面上用下拉框〈html:select〉进行显示
取系统时间最方便~
java.util.Date date = new java.util.Date();
java.text.SimpleDateFormat sd = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
String fileName = sd.format(date);
把jsp页数据导出到EXCEL时
动态生成EXCEL文件名。
WritableSheet sheet = book.createSheet(SheetName, 0); //生成工作表,参数0表示这是第一页
Label label;
OraDAOFactory OraDAO = new OraDAOFactory();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
ResultSetMetaData rsmd;
StringBuffer select = new StringBuffer();//存显示字段
int numCols = 0;//显示字段个数
int i = 0; //单元格行
int j = 0; //单元格列
try {
conn = OraDAO.getConnection();
jxl.write.WritableFont wfc = new jxl.write.WritableFont(
WritableFont.TIMES,
10,
WritableFont.BOLD,
false,
jxl.format.UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLUE);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
/**
* 标题写入
*/
String QuerySql = "select * from TABLE_VIEW where TABLENAME='TZ_PROPRIETOR' "; stmt = conn.createStatement();
rs = stmt.executeQuery(QuerySql);
label = new Label(j, i, "更新时间", wcfFC);
sheet.addCell(label);
j++;
while (rs.next()) {
label = new Label(j, i, StrPro.getNotNullStr(rs.getString(3)), wcfFC);
sheet.addCell(label);
j++;
select.append(StrPro.getNotNullStr(rs.getString(4)));
select.append(",");
}
谢谢!!!
ResultSet rs1,String bmbm,String excelsheet) throws Exception//columns
{
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os);
jxl.write.WritableSheet ws = wwb.createSheet(excelsheet, 0);
int i = 0;////i=行
jxl.write.WritableFont wfc = new jxl.write.WritableFont(
WritableFont.ARIAL, 10, WritableFont.BOLD, false,
UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);//文本字体
jxl.write.WritableFont title = new jxl.write.WritableFont(
WritableFont.ARIAL, 20, WritableFont.BOLD, false,
UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);//题目字体
jxl.write.WritableCellFormat wctitle = new jxl.write.WritableCellFormat(
title);
wctitle.setAlignment(jxl.format.Alignment.CENTRE);//题目
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(
wfc);
jxl.write.DateFormat datef = new jxl.write.DateFormat("yyyy-MM-dd HH:mm:ss"); //日期
jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(datef);
wcfDF.setAlignment(jxl.format.Alignment.LEFT);java.text.SimpleDateFormat ymd=new java.text.SimpleDateFormat("yyyy-MM");//本机时间
String dtime=ymd.format(new java.util.Date());//ws.mergeCells(0,0,6,0);
jxl.write.Label labelA = new jxl.write.Label(0, 0, "采集站", wctitle);//列,行
ws.addCell(labelA);
// System.out.println(bmbm);
jxl.write.Label labelD = new jxl.write.Label(0, 1, "导出日期:",wcfFC);//列,行
ws.addCell(labelD);
ws.mergeCells(1,1,3,1);
ws.setColumnView(1,15);//第一个参数为列,第二个参为列宽
ws.setColumnView(2,13);//
ws.setColumnView(3,25);//
ws.setColumnView(4,20);//
ws.setColumnView(6,16);//
jxl.write.DateTime labelD2 = new jxl.write.DateTime(1, 1, new java.util.Date(),wcfDF);
ws.addCell(labelD2); jxl.write.Label labelB = new jxl.write.Label(0, 2, "部门编号", wcfFC);//列,行
ws.addCell(labelB);
jxl.write.Label labelB2 = new jxl.write.Label(1, 2, "部门名称", wcfFC);
ws.addCell(labelB2);
jxl.write.Label labelB3 = new jxl.write.Label(2, 2, "采集站编号", wcfFC);
ws.addCell(labelB3);
jxl.write.Label labelB4 = new jxl.write.Label(3, 2, "采集站名称", wcfFC);
ws.addCell(labelB4);
jxl.write.Label labelB5 = new jxl.write.Label(4, 2, "备注", wcfFC);
ws.addCell(labelB5);
jxl.write.Label labelB6 = new jxl.write.Label(5, 2, "操作人", wcfFC);
ws.addCell(labelB6);
jxl.write.Label labelB7 = new jxl.write.Label(6, 2, "操作时间", wcfFC);
ws.addCell(labelB7);// System.out.println("ok");do {
String czsj="";
if(rs1.getString("czsj")==null)
{}
else
{
czsj=rs1.getString("czsj").substring(0,16);} for (int j = 0; j < columns; j++)
{
if(j==0)
{
jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("bmbm"));
ws.addCell(labelC);
}if(j==1)
{
jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("bmmc"));
ws.addCell(labelC);
}if(j==2)
{
jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("cjbh"));
ws.addCell(labelC);
}
if(j==3)
{
jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("cjmc"));
ws.addCell(labelC);
}
if(j==4)
{
jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("beiz"));
ws.addCell(labelC);
}
if(j==5)
{
jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("czrm"));
ws.addCell(labelC);
}
if(j==6)
{
jxl.write.Label labelC = new jxl.write.Label(j, i+3, czsj);
ws.addCell(labelC);
}
}
i = i + 1;
}
while (rs1.next());
rs1.close();
wwb.write();
wwb.close();
}
java.text.SimpleDateFormat sd = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
String fileName = sd.format(date);
try{
File f2=new File(fileName+".xls");
fis=new FileInputStream(f2);
bis=new BufferedInputStream(fis);
fos=response.getOutputStream();
bos=new BufferedOutputStream(fos);
int i;
while ((i=bis.read()) != -1) {
bos.write(i);
}
}catch(Exception e){
out.println(e.getMessage());
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
if (fos != null)
fos.close();
if (fis != null)
fis.close();
}