excel导入导出通用方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.package mon.utils;
2.import java.io.OutputStream;
3.import java.util.List;
4.import javax.servlet.http.HttpServletResponse;
5.import org.apache.struts2.ServletActionContext;
6.import ng.reflect.Field;
7.
8.import jxl.Workbook;
9.import jxl.format.Alignment;
10.import jxl.format.Border;
11.import jxl.format.BorderLineStyle;
12.import jxl.format.VerticalAlignment;
13.import bel;
14.import jxl.write.WritableCellFormat;
15.import jxl.write.WritableFont;
16.import jxl.write.WritableSheet;
17.import jxl.write.WritableWorkbook;
18./***
19. * @author lsf
20. */
21.public class ExportExcel {
22./***************************************************************************
23. * @param fileName EXCEL文件名称
24. * @param listTitle EXCEL文件第一行列标题集合
25. * @param listContent EXCEL文件正文数据集合
26. * @return
27. */
28.public final static String exportExcel(String fileName,String[] Title, List
nt) {
29. String result="系统提示:Excel文件导出成功!";
30.// 以下开始输出到EXCEL
31.try {
32.//定义输出流,以便打开保存对话框______________________begin
33. HttpServletResponse response=ServletActionContext.getResponse();
34. OutputStream os = response.getOutputStream();// 取得输出流
35. response.reset();// 清空输出流
36. response.setHeader("Content-disposition", "attachment; filename="+ new String(fileN
ame.getBytes("GB2312"),"ISO8859-1"));
37.// 设定输出文件头
38. response.setContentType("application/msexcel");// 定义输出类型
39.//定义输出流,以便打开保存对话框_______________________end
40.
41./** **********创建工作簿************ */
42. WritableWorkbook workbook = Workbook.createWorkbook(os);
43.
44./** **********创建工作表************ */
45.
46. WritableSheet sheet = workbook.createSheet("Sheet1", 0);
47.
48./** **********设置纵横打印(默认为纵打)、打印纸***************** */
49. jxl.SheetSettings sheetset = sheet.getSettings();
50. sheetset.setProtected(false);
51.
52.
53./** ************设置单元格字体************** */
54. WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);
55. WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD)
;
56.
57./** ************以下设置三种单元格样式,灵活备用************ */
58.// 用于标题居中
59. WritableCellFormat wcf_center = new WritableCellFormat(BoldFont);
60. wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条
61. wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
62. wcf_center.setAlignment(Alignment.CENTRE); // 文字水平对齐
63. wcf_center.setWrap(false); // 文字是否换行
64.
65.// 用于正文居左
66. WritableCellFormat wcf_left = new WritableCellFormat(NormalFont);
67. wcf_left.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条
68. wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
69. wcf_left.setAlignment(Alignment.LEFT); // 文字水平对齐
70. wcf_left.setWrap(false); // 文字是否换行
71.
72.
73./** ***************以下是EXCEL开头大标题,暂时省略********************* */
74.//sheet.mergeCells(0, 0, colWidth, 0);
75.//sheet.addCell(new Label(0, 0, "XX报表", wcf_center));
76./** ***************以下是EXCEL第一行列标题********************* */
77.for (int i = 0; i < Title.length; i++) {
78. sheet.addCell(new Label(i, 0,Title[i],wcf_center));
79. }
80./** ***************以下是EXCEL正文数据********************* */
81. Field[] fields=null;
82.int i=1;
83.for(Object obj:listContent){
84. fields=obj.getClass().getDeclaredFields();
85.int j=0;