java利用poi导出数据到excel

背景:

上一篇写到利用jtds连接数据库获取相应的数据,本篇写如何用poi将数据到处到excel中,此程序为Application

正文:

第三方poi jar包:poi驱动包下载

代码片段:

/**
	 * 将数据导出到excel中
	 * @param data 将要被导入到excel中的数据
	 * @throws IOException
	 */
	public void crateTempFile(ArrayList<LinkedHashMap<String, String>> data) throws IOException {
		//建立一个excel工作簿
		HSSFWorkbook wb = new HSSFWorkbook();
		//建立一个sheet
		HSSFSheet sheet = wb.createSheet("test");
		//建立一个单元格样式
		HSSFCellStyle commonTitileStyle = wb.createCellStyle();
		//建立一个字体样式
		HSSFFont font=wb.createFont();
		//设置字体颜色
		font.setColor(HSSFColor.RED.index);//HSSFColor.VIOLET.index //字体颜色
		//设置字体的大小
		font.setFontHeightInPoints((short)12);
		//字体增粗
		font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
		//将字体样式放入单元格样式中
		commonTitileStyle.setFont(font);
		//建立一行
		HSSFRow titleRow = sheet.createRow(0);
		Map<String, String> titleMap = data.get(0);
		Set<String> keySet = titleMap.keySet();
		Iterator<String> it = keySet.iterator();
		//sheet中行索引值
		int indexOfRow = 0;
		//建立第一行第一个单元格
		HSSFCell titileCell = titleRow.createCell(indexOfRow);
		String titilKey = "测试测试(6072)";
		//设置单元格宽度
		sheet.setColumnWidth(indexOfRow, 20 * 256);
		//给单元格赋值
		titileCell.setCellValue(titilKey);
		//设置单元格样式
		titileCell.setCellStyle(commonTitileStyle);
		indexOfRow = 1;
		//设置sheet第二行
		HSSFRow dataRow = sheet.createRow(indexOfRow);
		while (it.hasNext()) {
			//遍历建立第二行单元格格式
			HSSFCell cell1 = dataRow.createCell(indexOfRow-1);
			String key1 = it.next();
			//将数据库表中的字段名改为修改成excel中的需要的标题名称
			key1 = dbColumnNameToExcelColumnName(key1);
			sheet.setColumnWidth(indexOfRow, 20 * 256);
			cell1.setCellValue(key1);
			indexOfRow++;
		}
		//设置第三行
		indexOfRow = 2;
		for (Map<String, String> temp : data) {
			HSSFRow titleRow1 = sheet.createRow(indexOfRow);
			Set<String> set = temp.keySet();
			Iterator<String> it1 = set.iterator();
			int indexOfColumn = 0;
			while (it1.hasNext()) {
				String key = it1.next();
				if (key.equals("anchor_name") || key.equals("send_gift_user_name") || key.equals("add_date")) {
					String value = temp.get(key);
					if (key.equals("add_date")) {
						Date d = new Date(Long.valueOf(value));
						SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
						value = sdf.format(d);
					}
					HSSFCell cell = titleRow1.createCell(indexOfColumn);
					cell.setCellValue(value);
				} else {
					long value = Long.valueOf(temp.get(key));
					HSSFCell cell = titleRow1.createCell(indexOfColumn);
					cell.setCellValue(value);
				}
				indexOfColumn++;
			}
			indexOfRow++;
		}
		FileOutputStream fos = new FileOutputStream(new File("D://test//" + new Random().nextInt(100) + ".xls"));
		wb.write(fos);
		fos.close();
	}

效果:

在D:\test中建立一个excel文件,其中的样式为:

体会:

主要利用poi将数据导出excel。具体步骤是:

1.先建立一个excel工作簿,在建立一个sheet,

2.在建立的sheet中设置每一行每一个列的值。

具体的样式问题,可以查看poi提供的API文档

时间: 2024-08-12 06:12:23

java利用poi导出数据到excel的相关文章

spring boot 使用POI导出数据到Excel表格

摘自:https://www.cnblogs.com/hopeofthevillage/p/12099807.html spring boot 使用POI导出数据到Excel表格 2019-12-26 00:17  全me村的希望  阅读(42)  评论(0)  编辑收藏 在spring boot 的项目经常碰到将数据导出到Excel表格的需求,而POI技术则对于java操作Excel表格提供了API,POI中对于多种类型的文档都提供了操作的接口,但是其对于Excel表格的操作无疑是最强大的.

java 利用poi导出默认以表格展示的excel透视表

前言: 从前,我是一个前端程序猿,怀着对打通任(前)督(后)二(开)脉(发)的梦想转了后端,自学两礼拜java+spring全家桶,直接上项目实战.最近接到一需求:将业务数据导出一张透视表. 需求开发完成已近有一段时间了,甲方的大爷大妈,爷爷奶奶们也都用的很开心,我也很开心,于是就心想咱学了也不能白学,所以写下这篇随笔. 先看下用easypoi+POI导出的excel效果图(easypoi用来导出sheet1数据源,poi用来sheet0透视表): 图中的excel分为两个sheet, shee

Java实现Oracle导出数据到Excel

1.导入相应的jar包(jxl.jar 和 数据库连接的jar包) 2.写数据库连接的工具类 import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException; public class Dbutil {    /*     * 功能:编写一个静态方法用于与数据库建立连接 输入参数:无 返回值:数据库连接对象     */ 

springboot使用poi导出数据生成excel(.xlsx)文件

前言:在实际开发中经常需要将数据库的数据导出成excel文件,poi方式则是其中一种较为常用的导出框架.简单读取excel文件在之前的一篇有说明 本项目实现需求:user发出一个导出student信息的请求,直接下载包含所有student信息的excel文件到本机.只贴出关键代码,未贴出的很简单,自行脑补 整体流程(服务器端):接收请求------>取出数据库数据------>将数据存成excel临时文件------>通过响应头让浏览器下载此临时文件------>删除临时文件 项目

利用OLEDB导出数据到Excel

原帖地址:http://blog.csdn.net/cpp2017/archive/2008/04/02/2245396.aspx 利用OELDB数据访问对象操作Excel文件,达到将数据导出到Excel的目的,这种方法可能用的人不太多,缺点是必须有一个存在的Excel文件.优点是服务器不需要安装Excel,且生成的Excel是标准的Excel格式可以当作数据源使用. 准备工作: 1)先用准备一个Excel文件,这个Excel文件可以是空的,或是有一定格式的当做数据模板使用. 2)将操作的目录给

Java利用POI导入导出Excel中的数据

     首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地址http://poi.apache.org/download.html,有兴趣的朋友也可以去看看其中的API.      下面分享一下在对POI进行基本操作时觉得需要注意的两点:       1.POI中针对xlsx/xls是需要create different Workbook instance

Java导出数据为EXCEL的两种方式JXL和POI

JXL和POI导出数据方式的比较 POI支持excel2003和2007,而jxl只支持excel2003. 下面为测试代码: Java代码   public class TestCondition { /** * 生成的记录条数 */ public static final int RECORD_COUNT = 21000; /** * 模板文件 */ public static final String TEMPLATE_FILE = "E:/MyKernelPlatformWorkspac

Excel导出学习之道:Java Web利用POI导出Excel简单例子

采用Spring mvc架构: Controller层代码如下 [java] view plaincopy @Controller public class StudentExportController{ @Autowired private StudentExportService studentExportService; @RequestMapping(value = "/excel/export") public void exportExcel(HttpServletReq

JAVA关于POI导出Excel内存溢出的解决方案

JAVA关于POI导出Excel内存溢出的解决方案 在我们使用JAVA开发过程中,经常要导出查询获得的数据,这些数据一般情况下都是以Excel存储的,因此我们在导出数据的时候要使用JAVA的POI库,其主要是对各种windows平台的数据格式进行操作,在这里,我们是对Excel操作. 生成Excel的过程原理是这样的,首先,我们对数据库进行查询,获取相应的结果集,一般是list集合,然后生成Workbook对象,根据生成的Workbook对象获取sheet对象,根据此sheet对象获取Row对象