搭建springMVC的环境
添加Excel的操作包 poi-3.0.1.jar。
控制器中的方法,这里用的是多动作控制器
- public ModelAndView downCardAccountExcel(HttpServletRequest request,
- HttpServletResponse response, Object command)
- throws ServletRequestBindingException {
-
- ModelAndView mv = new ModelAndView();
- ExcelCardAccountView mvExcel = new ExcelCardAccountView();
-
- String queryStr = ReqUtil.getUrl(request);
- Map<String,String> queryMap = ReqUtil.getParamMap(request);
-
- Map map = new HashMap();
- if(queryMap.size()>1) {
- List<Cardaccount> cardAccounts = cardAccountService.queryCardAccountBy(queryMap,0,maxDownloadCount);
- map.put("records", cardAccounts);
- }
-
- return new ModelAndView(mvExcel,map);
- }
Excel视图类,并将相关的写数据操作放里面,注意要继承AbstractExcelView,让它为Excel视图的子类,并实现 buildExcelDocument方法即可。
- public class ExcelCardAccountView extends AbstractExcelView {
-
- @Override
- protected void buildExcelDocument(Map map, HSSFWorkbook workbook,
- HttpServletRequest request, HttpServletResponse response) throws Exception {
-
- int sheetRowNum = 0;
-
-
- HSSFSheet sheet = workbook.createSheet("卡账户查询");
-
-
-
- List list = (List) map.get("records");
- if(list!=null && list.size()>0) {
-
- HSSFRow titleRow = sheet.createRow((short) sheetRowNum++);
- HSSFCell titleCell = titleRow.createCell((short) 0);
- titleCell.setCellValue(new HSSFRichTextString("卡账户查询"));
-
-
- sheet.createRow(sheetRowNum++);
-
-
- String[] titles = { "账户号", "卡号","会员号","商户号","分店号","余额","次数","积分","创建时间" ,"状态"};
- HSSFRow dataTitleRow = sheet.createRow((short) sheetRowNum++);
- for (int i = 0; i < titles.length; i++) {
- HSSFCell cell = dataTitleRow.createCell((short) i);
- cell.setCellValue(new HSSFRichTextString(titles[i]));
- }
-
- String[] methodArray = { "getAccountId", "getCardId","getMemberId","getMerchantsId","getBranchId","getBalance","getTimes","getIntegral","getGmtCreate" };
-
-
-
- Iterator<Cardaccount> iter = list.iterator();
- for (int i = sheetRowNum; i < list.size() + sheetRowNum; i++) {
- if (iter.hasNext()) {
- Cardaccount item = iter.next();
- HSSFRow dataRow = sheet.createRow((short) (i));
- ServUtil.writeRowData(item,dataRow,methodArray);
-
-
- HSSFCell cell_0 = dataRow.createCell((short) methodArray.length);
- if(item.getStatus()==1) {
- cell_0.setCellValue(new HSSFRichTextString("正常"));
- } else {
- cell_0.setCellValue(new HSSFRichTextString("异常"));
- }
- }
- }
- } else {
-
- HSSFRow titleRow = sheet.createRow((short) sheetRowNum++);
- HSSFCell titleCell = titleRow.createCell((short) 0);
- titleCell.setCellValue(new HSSFRichTextString("没有数据"));
- }
-
- }
-
- }
为了避免导出很多列时的重复工作,写了一个方法,将不用转换的数据列设置到行中,方法如下:
-
-
-
-
-
-
-
- public static void writeRowData(Object o, HSSFRow dataRow,String[] methodArray) {
- Class<?> c = o.getClass();
-
- for(int i=0;i<methodArray.length;i++) {
- HSSFCell cell = dataRow.createCell((short)i);
- String methodName = methodArray[i];
-
- Method m = null;
- try {
- m = c.getMethod(methodName);
- } catch (SecurityException e) {
- e.printStackTrace();
- } catch (NoSuchMethodException e) {
- e.printStackTrace();
- }
- if(m!=null) {
- try {
- String returnType = m.getReturnType().toString();
- if(returnType.contains("String")) {
- cell.setCellValue(new HSSFRichTextString((String)m.invoke(o)));
- } else if(returnType.contains("Integer") || returnType.contains("int")) {
- cell.setCellValue(SimpleFilter.filterNull((Integer)m.invoke(o)));
- } else if(returnType.contains("Date")) {
- cell.setCellValue(new HSSFRichTextString(SimpleDateUtils.getDateString((Date)m.invoke(o), null)));
- }
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- }
- } else {
- cell.setCellValue(new HSSFRichTextString(""));
- }
- }
- }
分享到:
相关推荐
在Web应用中,经常需要将数据导出为Excel格式供用户下载,Spring MVC提供了一种优雅的方式实现这一功能。 Spring MVC是Spring框架的一部分,它是一个用于构建Web应用程序的模型-视图-控制器(MVC)架构。它允许...
spring boot excel导出 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过...
Spring Boot 读取 Excel 操作示例 Spring Boot 框架在实际开发中经常需要读取 Excel 文件,以便于数据导入、导出或报表生成等操作。为了实现 Spring Boot 读取 Excel 操作,需要使用 Apache POI 库,该库提供了对 ...
在Java开发中,Spring Boot框架提供了许多便利的功能,其中之一就是数据导出,特别是导出Excel文件。本篇文章将深入探讨如何使用Spring Boot结合jxl库实现Excel文件的生成与导出,以及如何自定义标题列。 首先,让...
2. **创建Excel数据模型**: 根据Excel文件中的数据结构,定义一个对应的Java类,用于封装数据。例如,如果Excel文件有列名如“姓名”、“年龄”和“邮箱”,可以创建一个User类,包含这三个属性。 3. **读取Excel...
2. **配置Spring**:在Spring项目中,我们需要配置一个处理器来处理Excel的读写。Spring提供了Apache POI库的集成,这是一个强大的API,用于处理Microsoft Office格式的文件,包括Excel。在Spring配置文件中,你需要...
在Spring Boot中实现Excel的导入导出... filename=employees.xlsx,这样浏览器就会将响应解释为要下载的Excel文件。 将Excel写入响应流: 使用response.getOutputStream()获取输出流,然后将工作簿写入到输出流中.....
利用spring 生成Excel和PDF文件(内含项目所需要的jar包)
Spring可以与POI库无缝集成,通过创建服务类,我们可以构建Excel工作簿、工作表,添加行、列和单元格数据,最后将其写入到响应流中,供用户下载。这在需要导出大量数据到Excel报表时非常实用。 具体实现步骤如下: ...
5. **响应处理**:在Spring MVC的Controller方法中,创建一个`ResponseEntity`对象,设置其状态码为200(OK),并指定Content-Type为“application/vnd.ms-excel”,这样浏览器会自动触发文件下载。然后,使用`...
该功能是业余时间写的东东,为了方便使用连接数据库,项目进行测试,方便使用spring配置定时任务,excel 读写操作等(项目是完整配置的东东),相关包由于文件太大无法上传,放入共享文件夹,有需要可以查看 ...
2. **Excel处理** 在传统的Java应用中,处理Excel文件通常涉及Apache POI库。然而,Spring Batch提供了更高级的抽象,使得开发者可以专注于业务逻辑,而不是底层的文件读写细节。"spring-batch-excel"可能就提供了...
Spring MVC可以处理HTTP请求,提供导出的Excel文件给用户下载。 为了实现这一功能,你需要配置Spring MVC的控制器,定义处理Excel导入和导出的HTTP请求方法。同时,你需要创建服务层来处理业务逻辑,比如数据验证、...
2. **Excel导入到数据库** 在Spring中,导入Excel数据通常涉及以下步骤: - 使用Apache POI解析Excel文件,将每一行数据转换为Java对象。 - 创建一个`@Service`层的方法,接收上传的Excel文件,用POI解析后,将...
在Spring Boot应用中导出Excel是一项常见的需求,主要用于数据报表的生成和下载。Spring Boot结合Apache POI库,可以方便地实现这个功能。Apache POI是Java中用于处理Microsoft Office格式文档(如Word、Excel、...
走Gateway下载Excel后打不开,打开乱码,文件大小变大- 解决方式一。 不走Gateway时,下载的Excel正常
在本教程中,我们将深入探讨如何使用Spring Boot和EasyPoi库来实现Excel文件的导出功能。Spring Boot是Java开发中的一个热门框架,它简化了设置和配置过程,使得开发更加高效。EasyPoi则是一个针对Apache POI的简化...
2. **Spring集成**: - Spring框架通常通过控制器(Controller)和视图解析器(ViewResolver)来处理HTTP请求和响应。这个组件可能定义了自定义的Spring MVC视图解析器,使得在返回响应时能直接以Excel格式呈现数据...
本项目是一个基于Spring Boot框架实现的实用工具,用于将Microsoft Office的三种常见文件格式——Word(.docx)、Excel(.xlsx)和PowerPoint(.pptx)转换为PDF格式。这个小Demo提供了完整的功能,无需任何水印,...
赠送jar包:excel-spring-boot-starter-1.1.1.jar; 赠送原API文档:excel-spring-boot-starter-1.1.1-javadoc.jar; 赠送源代码:excel-spring-boot-starter-1.1.1-sources.jar; 赠送Maven依赖信息文件:excel-...