excel导入导出通用方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 listConte

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;