`
webook_java
  • 浏览: 59007 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

SpringMvc 使用poi导入导出Excel

 
阅读更多
Util类
package com.common.util;

public class ExportUtil
{
	private XSSFWorkbook wb = null;

	private XSSFSheet sheet = null;

	/**
	 * @param wb
	 * @param sheet
	 */
	public ExportUtil(XSSFWorkbook wb, XSSFSheet sheet)
	{
		this.wb = wb;
		this.sheet = sheet;
	}

	/**
	 * 合并单元格后给合并后的单元格加边框
	 * 
	 * @param region
	 * @param cs
	 */
	public void setRegionStyle(CellRangeAddress region, XSSFCellStyle cs)
	{

		int toprowNum = region.getFirstRow();
		for (int i = toprowNum; i <= region.getLastRow(); i++)
		{
			XSSFRow row = sheet.getRow(i);
			for (int j = region.getFirstColumn(); j <= region.getLastColumn(); j++)
			{
				XSSFCell cell = row.getCell(j);// XSSFCellUtil.getCell(row,
												// (short) j);
				cell.setCellStyle(cs);
			}
		}
	}

	/**
	 * 设置表头的单元格样式
	 * 
	 * @return
	 */
	public XSSFCellStyle getHeadStyle()
	{
		// 创建单元格样式
		XSSFCellStyle cellStyle = wb.createCellStyle();
		// 设置单元格的背景颜色为淡蓝色
		cellStyle.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
		cellStyle.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND);
		// 设置单元格居中对齐
		cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);
		// 设置单元格垂直居中对齐
		cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
		// 创建单元格内容显示不下时自动换行
		cellStyle.setWrapText(true);
		// 设置单元格字体样式
		XSSFFont font = wb.createFont();
		// 设置字体加粗
		font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);
		font.setFontName("宋体");
		font.setFontHeight((short) 200);
		cellStyle.setFont(font);
		// 设置单元格边框为细线条
		cellStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN);
		cellStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN);
		cellStyle.setBorderRight(XSSFCellStyle.BORDER_THIN);
		cellStyle.setBorderTop(XSSFCellStyle.BORDER_THIN);
		return cellStyle;
	}

	/**
	 * 设置表体的单元格样式
	 * 
	 * @return
	 */
	public XSSFCellStyle getBodyStyle()
	{
		// 创建单元格样式
		XSSFCellStyle cellStyle = wb.createCellStyle();
		// 设置单元格居中对齐
		cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);
		// 设置单元格垂直居中对齐
		cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
		// 创建单元格内容显示不下时自动换行
		cellStyle.setWrapText(true);
		// 设置单元格字体样式
		XSSFFont font = wb.createFont();
		// 设置字体加粗
		font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);
		font.setFontName("宋体");
		font.setFontHeight((short) 200);
		cellStyle.setFont(font);
		// 设置单元格边框为细线条
		cellStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN);
		cellStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN);
		cellStyle.setBorderRight(XSSFCellStyle.BORDER_THIN);
		cellStyle.setBorderTop(XSSFCellStyle.BORDER_THIN);
		return cellStyle;
	}
}
service类
public interface ITestExportExcelService
{
	public void exportExcel(String hql,String [] titles,ServletOutputStream outputStream);
}
@Service
public class TestExportExcelServiceImpl implements ITestExportExcelService
{
	@Resource
	private ITestExportExcelDao dao;
	
	public void exportExcel(String hql, String[] titles, ServletOutputStream outputStream)
	{
		List<Goods> list = dao.exportExcel(hql);
		// 创建一个workbook 对应一个excel应用文件
		XSSFWorkbook workBook = new XSSFWorkbook();
		// 在workbook中添加一个sheet,对应Excel文件中的sheet
		XSSFSheet sheet = workBook.createSheet("导出excel例子");
		ExportUtil exportUtil = new ExportUtil(workBook, sheet);
		XSSFCellStyle headStyle = exportUtil.getHeadStyle();
		XSSFCellStyle bodyStyle = exportUtil.getBodyStyle();
		// 构建表头
		XSSFRow headRow = sheet.createRow(0);
		XSSFCell cell = null;
		for (int i = 0; i < titles.length; i++)
		{
			cell = headRow.createCell(i);
			cell.setCellStyle(headStyle);
			cell.setCellValue(titles[i]);
		}
		// 构建表体数据
		if (list != null && list.size() > 0)
		{
			for (int j = 0; j < list.size(); j++)
			{
				XSSFRow bodyRow = sheet.createRow(j + 1);
				Goods goods = list.get(j);

				cell = bodyRow.createCell(0);
				cell.setCellStyle(bodyStyle);
				cell.setCellValue(goods.getGoodsName());

				cell = bodyRow.createCell(1);
				cell.setCellStyle(bodyStyle);
				cell.setCellValue(goods.getGoodsCost());

				cell = bodyRow.createCell(2);
				cell.setCellStyle(bodyStyle);
				cell.setCellValue(goods.getGoodsUnit());
			}
		}
		try
		{
			workBook.write(outputStream);
			outputStream.flush();
			outputStream.close();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		finally
		{
			try
			{
				outputStream.close();
			}
			catch (IOException e)
			{
				e.printStackTrace();
			}
		}

	}

}
dao类
public interface ITestExportExcelDao
{
	public List<Goods> exportExcel(String hql);
}
@Repository
public class TestExportExcelDaoImpl implements ITestExportExcelDao
{
	@Resource
	private SessionFactory factory;
	
	/**
	 * 以goods表为例导出测试
	 */
	@SuppressWarnings("unchecked")
	public List<Goods> exportExcel(String hql)
	{
		Session session = factory.getCurrentSession();
		List<Goods> list = session.createQuery(hql).list();
		return list;
	}

}
控制层Controller
@Controller
@RequestMapping("/testexportexcel/*")
public class TestExportExcelController
{
	@Resource
	private ITestExportExcelService service;

	@RequestMapping
	public String exportExcel(HttpServletResponse response)
	{
		response.setContentType("application/binary;charset=ISO8859_1");
		try
		{
			ServletOutputStream outputStream = response.getOutputStream();
			String fileName = new String(("导出excel例子").getBytes(), "ISO8859_1");
			response.setHeader("Content-disposition", "attachment; filename=" + fileName + ".xlsx");// 组装附件名称和格式
			String hql = "from Goods";
			String[] titles = { "商品名", "商品单价", "商品单位" };
			service.exportExcel(hql, titles, outputStream);
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		return null;
	}

	@RequestMapping
	public String upload(HttpServletRequest request, HttpServletResponse response)
	{
		MultipartHttpServletRequest mulRequest = (MultipartHttpServletRequest) request;
		MultipartFile file = mulRequest.getFile("excel");
		String filename = file.getOriginalFilename();
		if (filename == null || "".equals(filename))
		{
			return null;
		}
		try
		{
			InputStream input = file.getInputStream();
			XSSFWorkbook workBook = new XSSFWorkbook(input);
			XSSFSheet sheet = workBook.getSheetAt(0);
			if (sheet != null)
			{
				for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++)
				{
					XSSFRow row = sheet.getRow(i);
					for (int j = 0; j < row.getPhysicalNumberOfCells(); j++)
					{
						XSSFCell cell = row.getCell(j);
						String cellStr = cell.toString();
						System.out.print("【"+cellStr+"】 ");
					}
					System.out.println();
				}

			}
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
		return "/test/uploadExcel.jsp";
	}

}

  • poi.rar (9.3 MB)
  • 下载次数: 1444
分享到:
评论
10 楼 songgongpu 2016-04-21  
头像销魂,文章也不错.
9 楼 kinood 2016-04-12  
怎么用不了
8 楼 andismail 2016-03-18  
看头像
7 楼 sunjunqin87 2015-11-19  
我是来看头像的
6 楼 xiaoxihai123 2015-09-19  
文章厉害,头像更厉害
5 楼 最爱海贼王 2014-10-08  
文章很给力,头像更给力!
4 楼 sky10198866 2014-08-04  
看了你了头像后石更了
3 楼 chenzhxa 2014-04-16  
这个只有导出吧?
2 楼 mao_siyu 2014-03-28  
正好用的上 谢谢, 我也想说,你头像真不错!
1 楼 zhmy0129 2013-12-24  
我想说..你头像蒸撩人

相关推荐

    SSM框架利用poi导入导出Excel文件 demo

    在本示例"SSM框架利用poi导入导出Excel文件 demo"中,我们将探讨如何在SSM项目中使用Apache POI库来实现Excel文件的导入与导出功能。 Apache POI是一个流行的开源库,它允许开发者在Java应用程序中创建、修改和显示...

    springmvc+poi 导入导出文件controller以及工具类

    要实现在SpringMVC中的Excel导入导出,我们需要创建一个控制器(Controller),例如`excelController.java`,这个控制器将处理HTTP请求并调用相应的服务进行数据处理。以下是一个简单的控制器方法示例: ```java @...

    SpringMVC+Hibernate+POI导入导出excel

    在导入导出Excel的场景中,SpringMVC主要负责接收HTTP请求,处理业务逻辑,并将结果返回给用户。 Hibernate是Java领域广泛使用的ORM框架,它允许开发者用面向对象的方式来操作数据库。通过Hibernate,开发者可以将...

    SpringMVC+POI文件导入导出

    总之,SpringMVC与Apache POI的结合使用,为Java Web应用提供了强大的Excel文件操作能力,使得数据的导入导出变得更加便捷。通过掌握这两项技术,开发者可以构建出高效的数据交换系统,满足各种业务场景的需求。

    springmvc+POI的Excel文件导入导出

    总结起来,"SpringMvc+POI的Excel文件导入导出"涉及到的关键技术包括Spring MVC的文件上传处理、Apache POI的Excel读写操作、以及模板填充和导出。通过熟练掌握这些技术,开发者能够高效地处理企业级应用中的Excel...

    使用SpringMVC导入导出excel

    当需要在Web应用程序中处理大量数据时,如报表生成、数据交换或用户数据导出,结合SpringMVC实现Excel的导入导出功能就显得尤为重要。 首先,让我们深入理解SpringMVC如何支持Excel导出。在SpringMVC中,我们可以...

    基于SSM的POI导入导出Excel实战

    总结一下,本教程的目的是教你如何在SSM框架下利用Apache POI实现Excel的导入导出功能,通过这个过程,你可以学习到如何结合SpringMVC的Controller、Service层以及POI库来处理文件操作,同时提升对SSM框架和Excel...

    Excel Java POI导入导出示例

    在Java开发中,处理Excel数据是一项常见的任务,例如读取数据、分析...只要理解了基本的数据结构和API用法,就能轻松地实现Excel的导入导出功能。记得在使用过程中妥善处理异常和资源关闭,以确保程序的稳定性和效率。

    基于ssm框架的poi导入导出

    本主题聚焦于"基于SSM框架的POI导入导出",这是一项在业务系统中常用的技术,用于处理大量数据的导入与导出,如Excel表格。 首先,我们需要理解SSM框架的构成: 1. **Spring**:Spring是核心容器,提供依赖注入...

    SSM框架使用POI技术导出Excel.pdf

    SSM框架使用POI技术导出Excel.pdf POI 框架是 Apache 开源的可以导出导入 Excel 表的,本博客介绍在 SSM(Spring+SpringMVC+Mybatis)项目里,如何使用 POI 框架,导出 Excel 表。下面是相关知识点的详细解释: 1...

    spring3.2.5 MVC Poi3.9操作excel批量导入

    在IT行业中,Spring框架是...结合Spring MVC的灵活性、Apache POI的强大文件处理能力以及Maven的项目管理,开发者可以构建出强大且易于维护的数据导入导出系统,这对于任何需要大量处理Excel数据的项目都是至关重要的。

    Spring3 MVC + POI 实现 Excel与MySQL 的导入导出

    综上所述,Spring3 MVC + POI 实现 Excel与MySQL 的导入导出是企业级应用中的常见技术组合,通过合理的设计和实现,可以有效地提高数据处理的效率和灵活性。开发者应当熟练掌握Spring MVC的控制器设计、服务层业务...

    SpringMVC实现与mysql连接和excel表格的导入和导出

    在本项目中,我们将探讨如何利用SpringMVC、MySQL和Apache POI实现数据库连接以及Excel的导入导出功能。 首先,SpringMVC中与数据库的交互通常通过JDBC或者ORM框架如Hibernate或MyBatis来完成。对于MySQL的连接,你...

    使用POI数据导出到Excel

    2. Java Web应用:在Web环境中,我们可能需要通过HTTP请求导出Excel,这通常涉及Servlet的响应流。开发者会创建一个Servlet,接收请求,使用POI生成Excel文件,然后将文件内容写入到HTTP响应的输出流中,使得客户端...

    详解poi+springmvc+springjdbc导入导出excel实例

    本文将围绕“poi+springmvc+springjdbc导入导出excel实例”的主题,详细讲述如何使用这些技术实现数据的导入导出功能。 首先,我们需要了解这些技术的基础概念: 1. POI:Apache POI是一个开源的Java库,用于处理...

    SSM框架导入导出Excel文件

    SSM框架配合Apache POI,能够高效地处理Excel数据的导入导出,使得Java Web应用能够与Excel文件进行便捷的数据交换。在实际应用中,需要注意性能优化、错误处理和用户体验,以提供稳定、易用的服务。

    ssm+分页+支持导入导出excel文件

    在实际开发中,要实现"ssm+分页+支持导入导出excel文件",你需要配置SSM框架,编写对应的Controller、Service、Mapper和DAO层代码,设计并实现分页逻辑,同时利用Apache POI处理Excel文件。此外,可能还需要考虑异常...

    spring MVC 导出excel

    在“spring MVC 导出excel”这个主题中,我们将深入探讨如何利用Spring MVC框架来实现Excel文件的导出功能,这对于数据展示和分析非常有用。 在实际应用中,我们可能需要将数据库中的大量数据导出到Excel文件,以便...

    ssm+分页+导入导出excel文件

    在描述中提到的“ssm+分页+导入导出excel文件”,我们可以深入探讨以下几个知识点: 1. **Spring框架**:Spring是Java企业级应用的核心框架,提供了IoC和AOP,用于解耦应用程序的组件,简化开发过程。通过依赖注入...

Global site tag (gtag.js) - Google Analytics