当前位置: 代码迷 >> Web前端 >> 在struts中使用JXL读写EXCEL
  详细解决方案

在struts中使用JXL读写EXCEL

热度:169   发布时间:2012-11-23 22:54:33.0
在struts中应用JXL读写EXCEL

在struts中应用JXL读写EXCEL参考,只不过我的操作有点不同, 我要实现的是将页面上显示的表格数据导出到EXCEL中,由于表头过于复杂,我不想在EXCEL中直接写,就想先把表头写好,在导出的时候,先去读这个文 件,然后继续填充数据,实现方法如下: ?
? ?
? package ? com.lonwin.struts.action; ?
? ?
? import ? java.io.File; ?
? import ? java.io.FileOutputStream; ?
? import ? java.io.OutputStream; ?
? ?
? import ? java.util.ArrayList; ?
? ?
? import ? javax.servlet.ServletOutputStream; ?
? import ? javax.servlet.http.HttpServletRequest; ?
? import ? javax.servlet.http.HttpServletResponse; ?
? ?
? import ? org.apache.struts.action.Action; ?
? import ? org.apache.struts.action.ActionForm; ?
? import ? org.apache.struts.action.ActionForward; ?
? import ? org.apache.struts.action.ActionMapping; ?
? ?
? import ? com.lonwin.struts.form.ShuiXiDataCollectionBean; ?
? ?
? ?
? //import ? com.lonwin.util.SaveParamBean; ?
? ?
? import ? jxl.*; ?
? ?
? import ? jxl.write.*; ?
? import ? jxl.write.Number; ?
? ?
? ?
? ?
? /** ? ?
? ? * ? created ? on ? 04-29-2004 ?
? ? * ? ?
? ? * ? 功能:实现导出EXCEL功能 ?
? ? * ? @struts:action ? validate="true" ?
? ? */ ?
? public ? class ? ExcelexportAction ? extends ? Action ? { ?
? ?
? // ? ------------------------------------------ ? Instance ? Variables ?
? private ? static ? final ? String ? CONTENT_TYPE ? = ? "application/vnd.ms-excel"; ? ?
? // ? -------------------------------------------- ? Methods ?
? ?
? /** ? ?
? ? * ? Method ? execute ?
? ? * ? @param ? ActionMapping ? mapping ?
? ? * ? @param ? ActionForm ? form ?
? ? * ? @param ? HttpServletRequest ? request ?
? ? * ? @param ? HttpServletResponse ? response ?
? ? * ? @return ? ActionForward ?
? ? * ? @throws ? Exception ?
? ? */ ?
? public ? ActionForward ? execute( ?
? ActionMapping ? mapping, ?
? ActionForm ? form, ?
? HttpServletRequest ? request, ?
? HttpServletResponse ? response) ?
? throws ? Exception ? { ?
? ?
? response.setContentType(CONTENT_TYPE); ?
? ArrayList ? array ? = ? new ? ArrayList(); ?
? array ? = ? (ArrayList)request.getSession().getAttribute("collectionsPWL"); ?
? ?
? System.out.println("得到记录"+array.size()+"个 ? !"); ?
? ?
? ?
? ?
? //读excel文件 ?
? ?
? try ? { ?
? ?
? ?
? File ? tempFile=new ? File("C:\\shuibao\\WorkProgram\\ExcelHeader\\shuixiPWL.xls"); ?
? ?
? ?
? ?
? // 创建只读的Excel工作薄的对象 ?
? ? ? ? ? Workbook ? wb ? = ? Workbook.getWorkbook(tempFile); ? ?
? ?
? // 创建可写入的Excel工作薄对象 ?
? // OutputStream ? os ? = ? new ? FileOutputStream(targetfile); ?
? // ? ? ? ? WritableWorkbook ? rwb ? = ? Workbook.createWorkbook(targetfile,wb); ?
? ?
? ServletOutputStream ? os ? = ? response.getOutputStream(); ?
? WritableWorkbook ? rwb ? = ? Workbook.createWorkbook(os,wb); ?
? ?
? // 读取第一张工作表 ?
? ? ? ? ? WritableSheet ? ws ? = ? rwb.getSheet(0); ? ?
? ?
? ?
? //获得第一张工作表的第一个单元格对象 ?
? WritableCell ? wc ? = ? ws.getWritableCell(0, ? 0); ?
? ?
? System.out.println("读出值了吗?"+wc.getContents()+" ? ? !"); ?
? ?
? ?
? ?
? // 向表中添加记录 ?
? int ? rows=1;//定义默认的行 ?
? for(int ? i=0;i<array.size();i++){ ?
? ShuiXiDataCollectionBean ? collections ? =(ShuiXiDataCollectionBean)array.get(i); ?
? // 水系名称 ?
? Label ? lable0 ? = ? new ? Label(0,rows,collections.getName()); ? ? ? ?
? ws.addCell(lable0); ?
? rows=rows+1; ?
? } ?
? ?
? ?
? ?
? ?
? // 写入Excel对象 ?
? rwb.write(); ?
? ?
? // 关闭可写入的Excel对象 ?
? rwb.close(); ?
? // 关闭只读的Excel对象 ?
? wb.close(); ?
? ?
? ?
? ?
? ?
? } ? catch ? (Exception ? e) ? { ?
? ? ? ? throw ? new ? Exception("坏了,文件没找着呀~~!"); ?
? } ? ?
? ?
? return ? new ? ActionForward(mapping.getInput()); ?
? } ?
? ?
? }

?

?

//////////////////////////////////////////////////////////////////////////////

http://topic.csdn.net/t/20040508/11/3041188.html

  相关解决方案