精华内容
下载资源
问答
  • excel导出

    万次阅读 2018-11-06 10:57:14
    下面为本地生成excel的例子,若需导出,则将文件输出流转为response输出流。   package excel; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import jxl.Workbook; ...

    下面为本地生成excel的例子,若需导出,则将文件输出流转为response输出流。

     

    package excel;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    
    import jxl.Workbook;
    import jxl.format.UnderlineStyle;
    import jxl.write.Colour;
    import jxl.write.Label;
    import jxl.write.WritableCellFormat;
    import jxl.write.WritableFont;
    import jxl.write.WritableSheet;
    import jxl.write.WritableWorkbook;
    
    public class WriteExcel {
    	
    	public void writeExcel() throws Exception{
    		File file = new File("D:\\Sim\\Project\\Excel\\test2.xls");
    		if (!file.exists()) {
    			file.createNewFile();
    		}
    		
    		OutputStream os = new FileOutputStream(file);// 取得输出流
    
    
            WritableWorkbook wbook = Workbook.createWorkbook(os); // 建立excel文件
            String tmptitle = "测试数据"; // 标题
            WritableSheet wsheet = wbook.createSheet(tmptitle, 0); // sheet名称
    
            // 设置excel标题
            WritableFont wfont = new WritableFont(WritableFont.ARIAL, 16, WritableFont.BOLD, false,
                                                  UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
            WritableCellFormat wcfFC = new WritableCellFormat(wfont);
            wcfFC.setBackground(Colour.AQUA);
            wsheet.addCell(new Label(1, 0, tmptitle, wcfFC));
            wfont = new jxl.write.WritableFont(WritableFont.ARIAL, 14, WritableFont.BOLD, false,
                                               UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
            wcfFC = new WritableCellFormat(wfont);
    
            // 开始生成主体内容
            wsheet.addCell(new Label(0, 2, "姓名"));
            wsheet.addCell(new Label(1, 2, "性别"));
            wsheet.addCell(new Label(2, 2, "证件类型"));
            wsheet.addCell(new Label(3, 2, "证件号码"));
            wsheet.addCell(new Label(4, 2, "手机号"));
           
            int count = 0;
            for (int i=0;i<10;i++) {
                wsheet.addCell(new Label(0, count + 3, "我是"+i+"号"));
                wsheet.addCell(new Label(4, count + 3, "my phone is:"+i));
                count++;
            }
    
            // 主体内容生成结束
            wbook.write();   // 写入文件
            wbook.close();
            os.close();   // 关闭流
    
    		
    	}
    	
    }
    

     

     

    pom依赖:

     

    <dependencies>
    		<dependency>
    			<groupId>org.apache.poi</groupId>
    			<artifactId>poi-ooxml</artifactId>
    			<version>3.9</version>
    		</dependency>
    		<!-- https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl -->
    		<dependency>
    			<groupId>net.sourceforge.jexcelapi</groupId>
    			<artifactId>jxl</artifactId>
    			<version>2.6</version>
    		</dependency>
    
    	</dependencies>

     

    结果图: 

     

     

    new Label(0, 2, "姓名")  指 新建一格 A3     相当于直角坐标系的X/Y轴定位

    x轴 数组对应关系为{0,1,2,3,.......,25} to  {A,B,C,........,Z}

    y轴 从也是从0开始

     

    展开全文
  • 提到Excel导出功能,可能很多人都使用springmvc框架做过,笔者今天要给大家分享的是基于springBoot开发Excel复杂模板导出功能(所谓复杂模板指在模板里的特定表头里有不同的单元格合并以及背景色,字体颜色的填充,...

    提到Excel导出功能,可能很多人都使用springmvc框架做过,笔者今天要给大家分享的是基于springBoot开发Excel复杂模板导出功能(所谓复杂模板指在模板里的特定表头里有不同的单元格合并以及背景色,字体颜色的填充,文本内容的对齐方式等)。

    实现思路:

    首先在springBoot(或者SpringCloud)项目的默认templates目录放入提前定义好的Excel模板,然后在具体的导出接口业务代码里通过IO流加载到这个Excel模板文件,读取指定的工作薄(也就是excel左下角的Sheet),接着给模板里的指定表头填充表头数据,接着读取数据库的相关数据用数据传输模型(DTO)封装数据,最后循坏填充excel的数据行(逐行逐列的填充数据),最后把填充完数据的Excel文件流输出(下载),即完成了数据库数据按照指定Excel模板导出Excel的完整过程。废话不多说,下面直接上代码。

    一、配置POI框架的依赖

    本案例是maven项目,解析Excel采用市面主流的POI框架,在pom.xml文件添加POI框架的依赖

    <!--读取excel文件,配置POI框架的依赖-->
    <dependency>
    	<groupId>org.apache.poi</groupId>
    	<artifactId>poi</artifactId>
    	<version>3.17</version>
    </dependency>
    <dependency>
    	<groupId>org.apache.poi</groupId>
    	<artifactId>poi-ooxml</artifactId>
    	<version>3.17</version>
    </dependency>

    二、放入excel模板文件

    目录结构如下所示:

    二、导出excel具体实现

    @RestController
    @RequestMapping("/excel")
    public class ExcelExportController {
    
    	
      @RequestMapping(value="/excelExport")
      public ResponseEntity<Resource> excel2007Export(HttpServletResponse response,HttpServletRequest request) {
       try {
         ClassPathResource cpr = new ClassPathResource("/templates/"+"student.xlsx");
         InputStream is = cpr.getInputStream();
    	 Workbook workbook = new XSSFWorkbook(is);
    	 org.apache.poi.ss.usermodel.Sheet sheet0 =workbook.getSheetAt(0);
    	 Row row = sheet0.getRow(2);
    	 Cell cell0 = row.getCell(0);
    	 Cell cell1 = row.getCell(1);
    	 Cell cell2 = row.getCell(2);
    	 cell0.setCellValue("guo");
    	 cell1.setCellValue("bin");
    	 cell2.setCellValue("hui");
    	 System.out.println(cell0);
    	 //这里作为演示,造几个演示数据,模拟数据库里查数据
    	 List <Student> list =  new ArrayList<Student>();
    	Student st1 = new Student();
    	Student st2 = new Student();
    	st1.setName("张三");
    	st1.setScore("87");
    	st1.setClass("一班");
    	st2.setName("张四");
    	st2.setScore("57");
    	st2.setClass("二班");
    	list.add(st1);
    	list.add(st2);
    	for(int i = 0;i<list.size();i++){
    		Row row = sheet0.getRow(i+3);//从第三行开始填充数据
    		row.setCellValue(list.get(i).getName());
    		row.setCellValue(list.get(i).getScore());
    		row.setCellValue(list.get(i).getClass());
    	}
    	String fileName = "moban.xlsx";
    	downLoadExcel(fileName, response, workbook);
    			
    	} catch (FileNotFoundException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	} catch (IOException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
        return new ResponseEntity<Resource>(HttpStatus.OK);
    }
    	
    public static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {
    	try {
    		response.setCharacterEncoding("UTF-8");
    		response.setHeader("content-Type", "application/vnd.ms-excel");
    		response.setHeader("Content-Disposition",
    					"attachment;filename=\"" + URLEncoder.encode(fileName, "UTF-8") + "\"");
    		workbook.write(response.getOutputStream());
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
       }
    }

    欢迎各位开发者朋友一起交流。笔者电话(微信):18629374628

    展开全文
  • excel导出经验

    千次阅读 2020-07-01 19:46:47
    excel导出经验,供参考

    excel导出经验,供参考

    数据量:1万以下

    直接导出,正常在5秒内

    数据量:1万-10万

    直接导出,正常在10秒内

    数据量:超过10万,建议多文件导出。

    可使用多线程查询,比如一个线程查1万数据,gzip压缩,设置响应头告诉浏览器用gzip解压
    同时也可以用CVS代替POI导出,节省存储空间
    搞的好点,应该也在20秒内

    数据量:超过100万,建议异步导出。

    新建一个异步导出任务表,每新发起一次导出,就先插入一条记录,状态是正在导出
    然后后台开始异步执行,最终把生成的文件存在服务器或文件服务器上,然后将url存在记录中,同时记录状态改为已完成导出
    然后前端引导用户去指定页面下载文件。

    注意:

    1、不同的系统,针对不同的用户,可能对用户体验的要求不一样,但一般人在导出数据的时候,超过5秒都不想等了,所以,如果因为数据量太大导致导出总时间超过5秒,就应该考虑异步导出了。

    2、导出的查询,最好是一次性查出来所有数据,避免查出来再组装数据的情况。
    比如要导出人员,但人员表中只有部门code,最好是一次性用一个sql查出来,而不要先查出所有的人员,然后再给每个人员填充部门信息。

    3、excel 2019最大行数1048576,即2的20次方
    国外一哥们为了测量excel最大行数,花了9个多小时
    所以理论上一次导出的一个文件,不超过这个行数,都是没问题的

    4、java导出excel,前几年用POI的多点,后来都用EasyExcel了,可以理解为POI的升级版,作者是阿里巴巴的一个同学。

    展开全文
  • easyPoi导出excel导出错误

    千次阅读 2019-11-22 14:46:33
    easyPoi导出excel导出错误解决方案 最近项目中忽然出现excel不能导出的错误,以前测试是好用的,跟代码发现是在默认样式时报控制针问题,此问题为poi依赖缺少或者easypoi版本太低导致,项目中使用的为3.0.1版本,又...

    easyPoi导出excel导出错误

    最近项目中忽然出现excel不能导出的错误,

    Caused by: java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.CellStyle.setAlignment(S)V

    以前测试是好用的,跟代码发现是在默认样式时报控制针问题,此问题为poi依赖缺少或者easypoi版本太低导致,项目中使用的为3.0.1版本,又忽略了poi版本,导致了报错。

    解决方案

    可以修改easypoi版本为最新版本,我使用的是4.0.1 相对应的poi版本为3.17
    或者将poi版本进行导入

    展开全文
  • Easypoi模版形式导出excel导出图片

    千次阅读 2019-02-26 16:19:43
    若您正在使用easypoi进行excel导出的话,希望这篇文章能帮到您。 本文主要是使用easypoi通过模版的形式导出图片。 若需要导出多sheet得话,非模版形式,可以参考我的文章EasyPOI-&gt;非模版形式导出Excel(多...
  • JFinal专题之POI-Excel导出解决方案

    千人学习 2017-04-18 11:51:35
    JFinal POI-Excel导出视频教程,该课程主要讲解JFinal导出Excel文件的解决方案,主要使用POI导出,JFinal输出文件流下载到本地。
  • 关于excel导出日期格式变化问题处理

    万次阅读 2019-03-13 15:01:18
    关于excel导出日期格式变化问题处理 1.问题描述:java web项目,本来部署在windows下,导出数据库数据是,创建日期格式为2018-08-08 08:08:08。因服务器性能问题,迁移服务器至linux(centos 7.5)。现成操作人员...
  • POI百万级大数据量EXCEL导出

    万次阅读 多人点赞 2018-09-25 20:18:05
    excel导出,如果数据量在百万级,会出现俩点内存溢出的问题: 1. 查询数据量过大,导致内存溢出。 该问题可以通过分批查询来解决; 2. 最后下载的时候大EXCEL转换的输出流内存溢出;该方式可以通过新版的...
  • laravel excel 导出乱码

    千次阅读 2017-10-28 12:27:13
    在使用laravel excel 导出excel数据时,xls格式会出现乱码 一种解决办法是 导出格式变成csv 另外一种就是使用 ob_end_clean
  • openfeign调用excel导出接口

    千次阅读 2019-02-21 18:29:10
    1.常见的excel导出核心方式 excel导出在企业应用中比较常见的. 我们一般都是把接口的 header 的 “ContentType” 置为 “application/octet-stream”, 将 “Content-Disposition” 置为 "attachment;filename=...
  • Java之基于注解的Excel导出

    万次阅读 2018-12-04 16:49:04
    数据库Excel导出操作代码过于冗长惨不忍睹,无法复用。 目录 第一步:自定义注解: 第二步:实体类: 第三步:解析工具类: 第四步:使用: 注解配合工具类做了个小工具如下: 第一步:自定义注解: package ...
  • 通用Excel导出Demo

    万次阅读 2017-06-16 21:33:17
    分享一个Excel导出Demo import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import javax.servlet.http.HttpServletRequest; import org.apache.poi.hssf.usermodel.HSSFCe
  • Springboot 使用easyexcel 实现Excel导出 导入easyexcel依赖 <!--alibaba easyexcel excel导出依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</...
  • 具体思路是:后端返回给我json数据,前端根据数据和具体的几项字段去导出excel表格,还有导出多个sheet,多页表格到一个excel表里面,具体思路 根据Export2Excel插件,并修改插件Export2Excel完成导出多页(多个sheet...
  • 前后端分离,Excel导出实现

    千次阅读 2020-04-24 23:11:09
    本篇博客主要记录一下,springBoot + vue前后端分离的项目,如何实现Excel导出功能,项目代码可以参考之前的一篇博文:springBoot+shiro+vue的学生管理系统(二、总体功能及登录功能) 1.添加POI依赖: <!-...
  • Excel导出公共组件设计

    千次阅读 2017-03-16 10:11:22
    自己动手实现一个Excel导出公共组建!!!!文章主要分为以下几个部分来说明: 1、明确目标 2、技术预研 3、技术方案选型与方案设计 4、技术实施 下面是实现一个Excel导出模块的目标: 通过自定义注解解析...
  • ajax做excel导出

    万次阅读 2016-12-29 17:34:43
    框架:play framework1ajax好像不能直接用过做excel导出今天测试了下: 前端代码: $("#export").click(function(){ var startTime = $("#startTime").val(); $.ajax({ url: "@{DownClickGogoalA
  • ExtJS实现Excel导出

    千次阅读 2013-07-28 18:04:12
    ExtJS实现Excel导出 ExtJS是一种基于客户端开发的AJAX应用,是一个与后台技术无关的前台ajax框架。由于项目需求,我们需要实现Excel的导出功能,前台界面是用ExtJS实现。如何实现呢? 使用POI组件实现excel导出...
  • 使用Hutool工具 进行Excel 导出

    千次阅读 2020-04-15 09:51:52
    使用Hutool工具 进行Excel 导出 使用版本 SpringBoot2.X 引入依赖 分别引入 poi 和 hutool 的依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</...
  • Excel导出失败的解决方案

    千次阅读 2019-03-26 16:40:11
    我按照同事给的步骤配置excel导出功能(如下所示)。 由于导出Excel功能需要服务器安装Microsoft Office Excel应用程序,并配置Asp.Net用户权限,以下是配置的操作步骤: 1)、开始--〉运行--〉cmd; 2)、命令提示...
  • 问题描述:当使用extremeTable 自带的excel导出的时候,如果数据量超过32767,就会报错,导不出来数据。通过查看jar包发现,是因为他们在定义excel导出的时候,将rownum设置为short了。 解决方案:自己重写一个导出...
  • excel导出总结

    千次阅读 2010-01-07 11:21:00
    1.目前excel导出常用有三种方法。poi导出jxl导出采用velocity模板导出。POI导出没用过,这里不做评述。1.jxl导出。 (1)先采用excel模板进行导出。可以根据事先制定好的模板,生成一个新的excel文件。好处:对模板...
  • Java之Excel导出工具类使用教程

    千次阅读 多人点赞 2019-03-20 17:34:02
    本工具类经过PostMan和...市面上有很多封装好的导出工具(如:阿里的easyExcel,GitHub上xxl-excel等),但如果直接引用依赖,扩展性和定制性比较差,所以博主通过apache.poi,自己实现一款Excel导出工具,方便定制使用。
  • **使用方式** 1.使用时把样式工具类ExcelStyleUtil当做参数传递进去即可 ExportParams exportParams = new ExportParams(&amp;amp;quot;标题名称&..., ExcelType.XSSF); exportParams.
  • SpringBoot整合EasyExcel实现Excel导出功能 导入需要的依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>1.1.2-beta5</...
  • Jxls+Spring MVC实现Excel导出

    千次阅读 2015-11-06 10:23:31
    Jxls+Spring MVC实现Excel导出Excel导出功能是业务系统比较常见的功能,我们可以使用POI、Jexcel等来进行Excel的操作,然后再结合Spring MVC对两者的支持进行导出。但此方法的不足之处在于我们需要不厌其烦的进行...
  • java百万级别excel导出(easyExcel)

    千次阅读 2018-10-06 16:08:55
    2.如何选择合适的excel导出? 选择的问题一般都比较纠结,选择了一个版本之后发现另外一个版本更适合,所以我们就应该选择一些我们相对较熟悉或者符合自己开发习惯的就行,没有必要纠结到底选择那个版本。 3....
  • 纯JS对页面表格进行EXCEL导出 ** 1.中间部分在style标签那种可以使用css样式对表格进行任意样式的修改 2.在tableid.innerHTML中可以对表格中的内容进行修改替换(其中放的内容就是导出后的表格内容) 3.需要引入xlsx...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 66,014
精华内容 26,405
关键字:

excel导出