excel导入导出通用方法

2026/1/24 10:54:25

1. package oa.common.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 java.lang.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 jxl.write.Label;

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, Lis

t listContent) {

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(\, \+ new St

ring(fileName.getBytes(\),\)); 37. // 设定输出文件头

38. response.setContentType(\);// 定义输出类型 39. //定义输出流,以便打开保存对话框_______________________end 40.

41. /** **********创建工作簿************ */

42. WritableWorkbook workbook = Workbook.createWorkbook(os); 43.

44. /** **********创建工作表************ */ 45.

46. WritableSheet sheet = workbook.createSheet(\, 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,WritableF

ont.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, \报表\

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;

86. for(Field v:fields){ 87. v.setAccessible(true); 88. Object va=v.get(obj); 89. if(va==null){ 90. va=\; 91. }

92. sheet.addCell(new Label(j, i,va.toString(),wcf_left)); 93. j++; 94. } 95. i++; 96. }

97. /** **********将以上缓存中的内容写到EXCEL文件中******** */ 98. workbook.write();

99. /** *********关闭文件************* */ 100. workbook.close(); 101.

102. } catch (Exception e) {

103. result=\系统提示:Excel文件导出失败,原因:\+ e.toString(); 104. System.out.println(result); 105. e.printStackTrace(); 106. }

107. return result; 108. } 109. }

3.通用导出:

[java] view plaincopy

1. package com.huateng.common.excel.parser; 2. 3.

4. import java.io.FileOutputStream; 5. import java.io.OutputStream; 6. import java.lang.reflect.Field; 7. import java.lang.reflect.Method; 8. import java.util.ArrayList; 9. import java.util.Collection; 10. import java.util.Date; 11. import java.util.HashMap; 12. import java.util.Iterator; 13. import java.util.List; 14. import java.util.Map;

15. 16.

17. import org.apache.poi.hssf.usermodel.HSSFRichTextString; 18. import org.apache.poi.hssf.usermodel.HSSFWorkbook; 19. import org.apache.poi.ss.usermodel.Cell;

20. import org.apache.poi.ss.usermodel.RichTextString; 21. import org.apache.poi.ss.usermodel.Row; 22. import org.apache.poi.ss.usermodel.Sheet; 23. import org.apache.poi.ss.usermodel.Workbook; 24. 25.

26. import com.huateng.test.pojo.Student; 27. 28.

29. public class ExcelExport2 { 30. 31.

32. public static void exportExcel(String title, Class pojoClass,Collection data

Set,

33. OutputStream out) {

34. //使用userModel模式实现的,当excel文档出现10万级别的大数据文件可能导致OOM内存溢

35. exportExcelInUserModel(title, pojoClass,dataSet,out);

36. //使用eventModel实现,可以一边读一边处理,效率较高,但是实现复杂,暂时未实现 37. }

38. private static void exportExcelInUserModel(String title, Class pojoClass,Col

lection dataSet, 39. OutputStream out) { 40. try {

41. // 首先检查数据看是否是正确的

42. if (dataSet == null || dataSet.size()==0) { 43. throw new Exception(\导出数据为空!\); 44. }

45. if(title == null || out == null || pojoClass == null) 46. {

47. throw new Exception(\传入参数不能为空!\); 48. }

49. // 声明一个工作薄

50. Workbook workbook = new HSSFWorkbook(); 51. // 生成一个表格

52. Sheet sheet = workbook.createSheet(title); 53. 54. 55. // 标题


excel导入导出通用方法.doc 将本文的Word文档下载到电脑
搜索更多关于: excel导入导出通用方法 的文档

Copyright © 2021-2025 云题海 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-3

× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219