`
truelove12358
  • 浏览: 77487 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

导出excel多种类对应工具类整理(util)

 
阅读更多



1.导出无表头excel 文件单个工作表(sheet),【fileName是标题名,titleList是列名,list就是列的内容了】

  1. /**
  2. *导出无表头excel文件单个工作表(sheet)
  3. *
  4. *@paramfileName
  5. *@paramtitleList
  6. *@paramlist
  7. *@paramresponse
  8. */
  9. publicstaticvoidexportNoHeadExcel(StringfileName,String[]titleList,
  10. Listlist,HttpServletResponseresponse){
  11. SimpleDateFormatdf=newjava.text.SimpleDateFormat("yyyyMMdd");
  12. StringtodayStr=df.format(newDate());
  13. OutputStreamos=null;
  14. try{
  15. os=response.getOutputStream();
  16. StringlocalFileName=fileName;
  17. fileName=java.net.URLEncoder.encode(fileName,"UTF-8");//处理中文文件名的问题
  18. fileName=newString(fileName.getBytes("UTF-8"),"GBK");//处理中文文件名的问题
  19. response.setContentType("application/vnd.ms-excel;");
  20. response.setHeader("Content-disposition","attachment;filename=\""
  21. +fileName+"_"+todayStr+".xls\"");
  22. //开始写入excel
  23. //字段字体
  24. jxl.write.WritableFontwfc1=newjxl.write.WritableFont(
  25. WritableFont.COURIER,10,WritableFont.NO_BOLD,true);
  26. jxl.write.WritableCellFormatwcfFC1=newjxl.write.WritableCellFormat(
  27. wfc1);
  28. wcfFC1.setAlignment(jxl.format.Alignment.CENTRE);
  29. wcfFC1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
  30. //结果字体
  31. jxl.write.WritableCellFormatwcfFC2=newjxl.write.WritableCellFormat();
  32. wcfFC2.setAlignment(jxl.format.Alignment.CENTRE);
  33. wcfFC2.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
  34. WritableWorkbookwbook=Workbook.createWorkbook(os);
  35. //写sheet名称
  36. WritableSheetwsheet=wbook.createSheet(localFileName,0);
  37. for(intm=0;m<titleList.length;m++){
  38. wsheet.setColumnView(m,30);
  39. }
  40. //加入字段名
  41. for(intn=0;n<titleList.length;n++){
  42. wsheet.addCell(newjxl.write.Label(n,0,titleList[n],wcfFC1));
  43. }
  44. //写入流中
  45. introw=0;
  46. for(intr=0;r<list.size();r++){
  47. Object[]obj=(Object[])list.get(r);
  48. for(intx=0;x<titleList.length;x++){
  49. wsheet.addCell(newjxl.write.Label(x,row+1,
  50. obj[x]==null?"":obj[x].toString(),wcfFC1));
  51. }
  52. row++;
  53. if(row%60000==0){
  54. row=0;
  55. //写sheet名称
  56. wsheet=wbook.createSheet(localFileName,0);
  57. for(intm=0;m<titleList.length;m++){
  58. wsheet.setColumnView(m,30);
  59. }
  60. //加入字段名
  61. for(intn=0;n<titleList.length;n++){
  62. wsheet.addCell(newjxl.write.Label(n,0,titleList[n],
  63. wcfFC1));
  64. }
  65. }
  66. }
  67. wbook.write();
  68. wbook.close();
  69. os.flush();
  70. }catch(Exceptione){
  71. e.printStackTrace();
  72. }finally{
  73. if(os==null){
  74. Log.info("osisnull");
  75. }else{
  76. try{
  77. os.close();
  78. os=null;
  79. }catch(IOExceptione){
  80. e.printStackTrace();
  81. }
  82. }
  83. }
  84. }

2.首先导出无表头excel 文件带多个工作表(sheet),【sheetList存放的就是Map包含fileName是标题名,titleList是列名,list就是列的内容】

  1. /**
  2. *导出无表头excel文件
  3. *
  4. *@paramfileName
  5. *@paramtitleList
  6. *@paramlist
  7. *@paramresponse
  8. */
  9. publicstaticvoidexportNoHeadExcel(List<Map<String,Object>>sheetList,HttpServletResponseresponse){
  10. SimpleDateFormatdf=newjava.text.SimpleDateFormat("yyyyMMdd");
  11. StringtodayStr=df.format(newDate());
  12. OutputStreamos=null;
  13. try{
  14. os=response.getOutputStream();
  15. WritableWorkbookwbook=Workbook.createWorkbook(os);
  16. for(inti=0;i<sheetList.size();i++){
  17. Map<String,Object>map=sheetList.get(i);
  18. StringfileName=(String)map.get("fileName");
  19. String[]titleList=(String[])map.get("titleList");
  20. Listlist=(List)map.get("list");
  21. StringlocalFileName=fileName;
  22. fileName=java.net.URLEncoder.encode(fileName,"UTF-8");//处理中文文件名的问题
  23. fileName=newString(fileName.getBytes("UTF-8"),"GBK");//处理中文文件名的问题
  24. response.setContentType("application/vnd.ms-excel;");
  25. response.setHeader("Content-disposition","attachment;filename=\""
  26. +fileName+"_"+todayStr+".xls\"");
  27. //开始写入excel
  28. //字段字体
  29. jxl.write.WritableFontwfc1=newjxl.write.WritableFont(
  30. WritableFont.COURIER,10,WritableFont.NO_BOLD,true);
  31. jxl.write.WritableCellFormatwcfFC1=newjxl.write.WritableCellFormat(
  32. wfc1);
  33. wcfFC1.setAlignment(jxl.format.Alignment.CENTRE);
  34. wcfFC1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
  35. //结果字体
  36. jxl.write.WritableCellFormatwcfFC2=newjxl.write.WritableCellFormat();
  37. wcfFC2.setAlignment(jxl.format.Alignment.CENTRE);
  38. wcfFC2.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
  39. //写sheet名称
  40. WritableSheetwsheet=wbook.createSheet(localFileName,i);
  41. for(intm=0;m<titleList.length;m++){
  42. wsheet.setColumnView(m,30);
  43. }
  44. //加入字段名
  45. for(intn=0;n<titleList.length;n++){
  46. wsheet.addCell(newjxl.write.Label(n,0,titleList[n],wcfFC1));
  47. }
  48. //写入流中
  49. introw=0;
  50. for(intr=0;r<list.size();r++){
  51. Object[]obj=(Object[])list.get(r);
  52. for(intx=0;x<titleList.length;x++){
  53. wsheet.addCell(newjxl.write.Label(x,row+1,
  54. obj[x]==null?"":obj[x].toString(),wcfFC1));
  55. }
  56. row++;
  57. if(row%60000==0){
  58. row=0;
  59. //写sheet名称
  60. wsheet=wbook.createSheet(localFileName,0);
  61. for(intm=0;m<titleList.length;m++){
  62. wsheet.setColumnView(m,30);
  63. }
  64. //加入字段名
  65. for(intn=0;n<titleList.length;n++){
  66. wsheet.addCell(newjxl.write.Label(n,0,titleList[n],
  67. wcfFC1));
  68. }
  69. }
  70. }
  71. }
  72. wbook.write();
  73. wbook.close();
  74. os.flush();
  75. }catch(Exceptione){
  76. e.printStackTrace();
  77. }finally{
  78. if(os==null){
  79. Log.info("osisnull");
  80. }else{
  81. try{
  82. os.close();
  83. os=null;
  84. }catch(IOExceptione){
  85. e.printStackTrace();
  86. }
  87. }
  88. }
  89. }

3.导出excel文件带标题【fileName是标题名,titleList是列名,list就是列的内容了】

  1. /**
  2. *导出excel文件带标题
  3. *
  4. *@paramfileName
  5. *@paramtitleList
  6. *@paramlist
  7. *@paramresponse
  8. */
  9. publicstaticvoidexportWithHeadExcel(StringfileName,String[]titleList,
  10. Listlist,HttpServletResponseresponse){
  11. Datenow=newDate();
  12. SimpleDateFormatdateformat=newjava.text.SimpleDateFormat(
  13. "yyyy年MM月dd日HH时mm分");
  14. SimpleDateFormatdf=newjava.text.SimpleDateFormat("yyyyMMdd");
  15. StringtodayStr=df.format(newDate());
  16. Stringtoday=dateformat.format(now);
  17. OutputStreamos=null;
  18. try{
  19. os=response.getOutputStream();
  20. StringlocalFileName=fileName;
  21. fileName=java.net.URLEncoder.encode(fileName,"UTF-8");//处理中文文件名的问题
  22. fileName=newString(fileName.getBytes("UTF-8"),"GBK");//处理中文文件名的问题
  23. response.setContentType("application/vnd.ms-excel;");
  24. response.setHeader("Content-disposition","attachment;filename=\""
  25. +fileName+"_"+todayStr+".xls\"");
  26. //开始写入excel
  27. //加标题
  28. //标题字体
  29. jxl.write.WritableFontwfc=newjxl.write.WritableFont(
  30. WritableFont.COURIER,18,WritableFont.NO_BOLD,false);
  31. jxl.write.WritableCellFormatwcfFC=newjxl.write.WritableCellFormat(
  32. wfc);
  33. wcfFC.setAlignment(jxl.format.Alignment.CENTRE);
  34. wcfFC.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
  35. //字段字体
  36. jxl.write.WritableFontwfc1=newjxl.write.WritableFont(
  37. WritableFont.COURIER,10,WritableFont.NO_BOLD,false);
  38. jxl.write.WritableCellFormatwcfFC1=newjxl.write.WritableCellFormat(
  39. wfc1);
  40. wcfFC1.setAlignment(jxl.format.Alignment.CENTRE);
  41. wcfFC1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
  42. //结果字体
  43. jxl.write.WritableCellFormatwcfFC2=newjxl.write.WritableCellFormat();
  44. wcfFC2.setAlignment(jxl.format.Alignment.CENTRE);
  45. wcfFC2.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
  46. WritableWorkbookwbook=Workbook.createWorkbook(os);
  47. //写sheet名称
  48. WritableSheetwsheet=wbook.createSheet(localFileName,0);
  49. inti=3;
  50. for(intm=0;m<titleList.length;m++){
  51. wsheet.setColumnView(m,30);
  52. }
  53. //加入字段名
  54. for(intn=0;n<titleList.length;n++){
  55. wsheet.addCell(newjxl.write.Label(n,3,titleList[n],wcfFC1));
  56. }
  57. //加入标题
  58. wsheet.mergeCells(0,0,i-1,0);
  59. wsheet.addCell(newLabel(0,0,localFileName,wcfFC));
  60. //加入打印时间
  61. wsheet.addCell(newLabel(i-2,1,"打印日期:"));
  62. wsheet.addCell(newLabel(i-1,1,today));
  63. //写入流中
  64. introw=0;
  65. for(intr=0;r<list.size();r++){
  66. Object[]obj=(Object[])list.get(r);
  67. for(intx=0;x<titleList.length;x++){
  68. wsheet.addCell(newjxl.write.Label(x,row+4,
  69. obj[x]==null?"":obj[x].toString(),wcfFC1));
  70. }
  71. row++;
  72. if(row%60000==0){
  73. row=0;
  74. //写sheet名称
  75. wsheet=wbook.createSheet(localFileName,0);
  76. i=3;
  77. for(intm=0;m<titleList.length;m++){
  78. wsheet.setColumnView(m,30);
  79. }
  80. //加入字段名
  81. for(intn=0;n<titleList.length;n++){
  82. wsheet.addCell(newjxl.write.Label(n,3,titleList[n],
  83. wcfFC1));
  84. }
  85. //加入标题
  86. wsheet.mergeCells(0,0,i-1,0);
  87. wsheet.addCell(newLabel(0,0,localFileName,wcfFC));
  88. //加入打印时间
  89. wsheet.addCell(newLabel(i-2,1,"打印日期:"));
  90. wsheet.addCell(newLabel(i-1,1,today));
  91. }
  92. }
  93. wbook.write();
  94. wbook.close();
  95. os.flush();
  96. }catch(Exceptione){
  97. e.printStackTrace();
  98. }finally{
  99. if(os==null){
  100. Log.info("osisnull");
  101. }else{
  102. try{
  103. os.close();
  104. os=null;
  105. }catch(IOExceptione){
  106. e.printStackTrace();
  107. }
  108. }
  109. }
  110. }

目前大概整理了这3个,以后用到还会整理更新,今天就先到在这里吧..待续...

分享到:
评论

相关推荐

    easyuiPoi导出Excel工具类封装(支持合并单元格)

    在EasyUIPoI中,导出Excel的过程被封装成了一套简单的API。首先,你需要创建一个模板文件,定义好Excel的结构和样式,例如单元格的合并、字体、颜色等。模板文件可以使用Microsoft Excel来创建,保存为`.xlsx`格式,...

    java导出到excel的工具类

    本篇文章将深入探讨如何使用Apache POI创建一个Java工具类来实现高效且灵活的Excel导出功能。 首先,我们需要了解Apache POI的基本用法。Apache POI提供了两种主要的API用于处理Excel文件:HSSF(用于旧版的.xls...

    poi分多个sheet导出excel

    标题“poi分多个sheet导出excel”所指的就是如何使用POI库来动态地生成多个sheet,并根据设定的阈值(如50000条记录)进行切换。 首先,要使用Apache POI,你需要在项目中引入对应的依赖。如果你使用的是Maven,...

    条件导出Excel 工具类.zip

    在Java编程领域,工具类(Util Class)是一种封装了常用功能的方法集合,它们不包含任何状态,通常是静态方法,提供给开发者便捷的调用。在给定的"条件导出Excel 工具类.zip"中,我们可以推断这是一个用于处理Excel...

    java poi excel 模板导入通用工具类,支持2003/2007

    8. **读写操作**:除了导入数据,工具类也可能提供导出功能,将已填充的数据保存为新的Excel文件。 在实际使用时,用户可能需要阅读`README.md`文件,该文件通常会提供详细的使用指南,包括如何添加依赖、如何初始...

    easy-poi导入导出excel实例

    例如,我们可以创建一个方法用于导出Excel: ```java import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import ...

    java web使用jxls导出excel功能

    Jxls提供了一个`JxlsHelper`工具类,它包含了一些静态方法来帮助我们完成这个任务。以下是一个简单的示例: ```java import org.jxls.common.Context; import org.jxls.util.JxlsHelper; import java.io....

    POI导出EXCEL经典实现

    ### POI导出EXCEL经典实现 #### 一、引言 在Web开发过程中,数据的导入导出是一项常见的需求,特别是在生产管理和财务系统中,这类功能被广泛应用于报表生成和数据分析。通常,数据导出的目标格式有Excel或PDF等。...

    java_excel_util

    对于J2EE项目导入导出Excel是最普通和实用功能, 本工具类使用步骤简单,功能强大,只需要对实体类进行简单的注解就能实现导入导出功能,导入导出操作的都是实体对象. 看看这个类都有哪些功能吧: * 1.实体属性配置了...

    使用 jxls2.X 导出excel文件源码

    本篇文章将深入探讨如何使用 `jxls2` 库来导出Excel文件,同时参考《使用 jxls2.X 导出excel文件源码》这篇博客文章中的案例进行讲解。 首先,我们需要理解 `jxls2` 的核心概念:模板和转换器。模板是预先设计好的...

    java导出Excel

    `Util`类通常是工具类,包含了一些通用方法;而`Bo`(Business Object)类则可能封装了业务逻辑。 8. **性能优化**: - 当处理大量数据时,要考虑内存管理和性能优化。例如,可以分批写入数据,或者使用 streaming...

    poi excel导出

    4. 导出Excel:将工作簿写入OutputStream,可用于网络传输或保存到本地。 5. 批量读取数据:从Excel文件中读取数据,返回List或其他集合结构,方便进一步处理。 四、示例代码 下面是一个简单的POI Excel导出工具类...

    PoiUtil.zip

    例如,要从Excel导入数据,只需调用工具类的相应方法,传入文件路径、行和列信息,就可以得到整理好的数据结构。对于Java对象的导入,通常需要提供一个对应的Java类,该类的属性与Excel中的列对应,通过反射技术实现...

    springboot-excel.zip

    在本文中,我们将深入探讨如何在SpringBoot项目中利用Maven和Java工具类实现Excel的导入与导出功能,特别是通过自定义注解和反射来获取数据。SpringBoot以其便捷的配置和强大的功能,已经成为Java开发中的热门框架,...

    sword-excel:用于 poi 的 java excel util

    【sword-excel:用于 poi 的 java excel util】是一款基于Apache POI库的Java工具,专门设计用来简化在Java环境中操作Excel文件的任务。Apache POI是一个流行的开源项目,它提供了读写Microsoft Office格式文件的能力...

    java中将多个excel打包成zip文件下载.rar

    在`ZipUtil.txt`和`ZipUtilTest.txt`文件中,可能分别存储了压缩和解压缩的工具类以及对应的测试代码。通常,`ZipUtil`类会包含上述的压缩逻辑,而`ZipUtilTest`类则使用JUnit或其他测试框架进行单元测试,确保压缩...

    POIutil.rar

    `ExcelUtils.java`可能是另一个辅助工具类,它可能包含了各种实用函数,比如设置单元格样式、合并单元格、调整列宽等,以提高导出Excel的美观性和易读性。例如,`formatCell(Cell cell, Object value)`方法可以用来...

    java导出文档

    创建Excel文档的工具类 ```java public class ExcelExportUtil { // ... } ``` 在这个类中,定义了创建Excel文档的方法。 ##### 3. 设置参数 ```java String templateFilePath = "E:\\xlk_work\\temp\\模板....

    POI实现数据导出功能

    在Java开发中,Apache POI库是一个非常实用的工具,它允许我们操作Microsoft Office格式的文件,特别是Excel工作簿。本篇文章将详细讲解如何利用Apache POI库来实现数据的导出功能,创建一个能够接收数据List集合并...

Global site tag (gtag.js) - Google Analytics