package cn.crossmedia.eshop.makeFile;import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.util.List;import cn.crossmedia.common.util.ClassUtil;import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;public class createExcel { private List list; public List getList() {
return list;
} public void setList(List list) {
this.list = list;
} public ByteArrayOutputStream writeXls(String[] itemHead) {
if (list == null || list.size() < 1) {
return null;
}
WritableWorkbook wwb = null;
WritableSheet sheet = null;
OutputStream os = new ByteArrayOutputStream();
Label lable = null;
int row = 0; try {
wwb = Workbook.createWorkbook(os);
sheet = wwb.createSheet("CORSS", 0); //添加第一个工作表
for (int i = 0; i < itemHead.length; i++) {
lable = new Label(i, row, itemHead[i]); //put the title in row1
sheet.addCell(lable);
}
Field[] fielItem = null; //用于保存实体对象属性 key
if (list.size() > 0) {
fielItem = list.get(0).getClass().getDeclaredFields(); }
for (Object o : list) {
++row;
if (fielItem.length > 0) {
for (int i = 0; i < itemHead.length; i++) {
//获取属性value值
Object value = ClassUtil.getFieldValue(o, fielItem[i]);
value = value == null ? "" : value;
lable = new Label(i, row, itemHead[i]);
sheet.addCell(lable);
}
}
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return (ByteArrayOutputStream)os;
}}
这是 创建类
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.util.List;import cn.crossmedia.common.util.ClassUtil;import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;public class createExcel { private List list; public List getList() {
return list;
} public void setList(List list) {
this.list = list;
} public ByteArrayOutputStream writeXls(String[] itemHead) {
if (list == null || list.size() < 1) {
return null;
}
WritableWorkbook wwb = null;
WritableSheet sheet = null;
OutputStream os = new ByteArrayOutputStream();
Label lable = null;
int row = 0; try {
wwb = Workbook.createWorkbook(os);
sheet = wwb.createSheet("CORSS", 0); //添加第一个工作表
for (int i = 0; i < itemHead.length; i++) {
lable = new Label(i, row, itemHead[i]); //put the title in row1
sheet.addCell(lable);
}
Field[] fielItem = null; //用于保存实体对象属性 key
if (list.size() > 0) {
fielItem = list.get(0).getClass().getDeclaredFields(); }
for (Object o : list) {
++row;
if (fielItem.length > 0) {
for (int i = 0; i < itemHead.length; i++) {
//获取属性value值
Object value = ClassUtil.getFieldValue(o, fielItem[i]);
value = value == null ? "" : value;
lable = new Label(i, row, itemHead[i]);
sheet.addCell(lable);
}
}
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return (ByteArrayOutputStream)os;
}}
这是 创建类
解决方案 »
- SQL语句中加@有什么含义。。
- 大话帮我看看,我这条分页SQL有什么问题啊?在线等!
- Jni 传递 jobjectArray
- Tomcat服务不能正常关闭
- 为什么Strut2.x要改变Struts1中Action的单例模式,而为每个request申请一个Action实例?
- 请教一个关于java函数的问题~~~~~~~~~~~!!!!!!!!!!!
- 关于使用j2sdk+apache+resin配置jsp环境的疑问!【请指教】
- 高分求救
- EJB高级开发问题,如何在EJB中利用自定义的类,并在JSP中返回该类的数组
- 高分求实体been的BMP例子
- 可恶的BUG
- 为什么访问这个页面,浏览器自动编码为Big5从而出现乱码?
public ActionForward makeExcel(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
if (list==null||list.size()<1) {
return null ;
}
FormatForm formatForm = (FormatForm) form;// TODO Auto-generated
formatForm.getExcel().setList(list);
String []itemHead = {"编号","标题","描述","创建者","状态"};
ByteArrayOutputStream ba = formatForm.getExcel().writeXls(itemHead);
pubCode(response, ba,"application/excel");
return null;
}public void pubCode(HttpServletResponse response,ByteArrayOutputStream ba,String type){
try {
response.setContentType(type);
response.setContentLength(ba.size());
ServletOutputStream out = null;
out = response.getOutputStream();
ba.writeTo(out);
out.flush();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public ActionForward makeExcel(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
if (list==null||list.size()<1) {
return null ;
}
FormatForm formatForm = (FormatForm) form;// TODO Auto-generated
formatForm.getExcel().setList(list);
String []itemHead = {"编号","标题","描述","创建者","状态"};
ByteArrayOutputStream outStream= formatForm.getExcel().writeXls(itemHead);
response.reset();
response.setContentType("application/x-msdownload");
try {
response.setHeader("Content-Disposition", "attachment; filename="+new String(("导出excel.xls").getBytes(),"iso8859-1"));
ServletOutputStream sos = response.getOutputStream();
outStream.writeTo(sos);
sos.flush();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
可是 弹了一个 Excel保存提示 但是打开 报错: 格式不正确 ……………… 哭啊
OutputStream os = new ByteArrayOutputStream();
改成 InputStream is =new FileInputStream(“D:\test”);
import java.lang.reflect.Field;
import java.util.List;import javax.servlet.http.HttpServletResponse;import cn.crossmedia.common.util.ClassUtil;import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;public class createExcel { private List list; public List getList() {
return list;
} public void setList(List list) {
this.list = list;
} public void writeXls(String[] itemHead,HttpServletResponse response) {
if (list == null || list.size() < 1) {
return ;
}
WritableWorkbook wwb = null;
WritableSheet sheet = null;
Label lable = null;
int row = 0; try {
OutputStream os = response.getOutputStream();
wwb = Workbook.createWorkbook(os);
sheet = wwb.createSheet("CORSS", 0); //添加第一个工作表
for (int i = 0; i < itemHead.length; i++) {
lable = new Label(i, row, itemHead[i]); //put the title in row1
sheet.addCell(lable);
}
Field[] fielItem = null; //用于保存实体对象属性 key
if (list.size() > 0) {
fielItem = list.get(0).getClass().getDeclaredFields(); }
for (Object o : list) {
++row;
if (fielItem.length > 0) {
for (int i = 0; i < itemHead.length; i++) {
//获取属性value值
Object value = ClassUtil.getFieldValue(o, fielItem[i]);
value = value == null ? "" : value;
lable = new Label(i, row, value.toString());
sheet.addCell(lable);
}
}
}
wwb.write();
wwb.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}}
// TODO Auto-generated method stub
if (list==null||list.size()<1) {
return null ;
}
FormatForm formatForm = (FormatForm) form;// TODO Auto-generated
formatForm.getExcel().setList(list);
response.setHeader("Content-disposition", "attachment; filename=student.xls");// 设定输出文件头
response.setContentType("application/msexcel");// 定义输出类型
String []itemHead = {"编号","标题","描述","创建者","状态"};
formatForm.getExcel().writeXls(itemHead,response);
return null;
}我昨天也是找了好久 ,最后合起来给解决了 希望对以后需要的人有用