在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.youkuaiyun.com/t/20040508/11/3041188.html
本文介绍了一种在Struts框架中利用JXL库实现从网页表格导出Excel的方法。具体做法是预先设置好Excel表头,再通过程序读取此模板并填充动态数据,最终完成导出。
1055

被折叠的 条评论
为什么被折叠?



