POI导出Excel表格

体需要的jar包参考上篇文章POI解析Excel表格

创建表格的格式内容是List<String[]>字符串数组。

package com.ftx.poi;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.HorizontalAlignment;

/**
 * 文件导出
 * @author Administrator
 *
 */
public class ExportExcel {
	//创建Excel表格
	public static void main(String[] args) throws IOException {
		ExportExcel export = new ExportExcel();
		List<String[]> resource=new ArrayList<String[]>();
		resource.add(new String[] {"性别","姓名","住址"});
		resource.add(new String[] {"男","樊江锋","河南郑州"});
		resource.add(new String[] {"女","袁梦阳","河南安阳"});
		//指定生成文件的路径和文件名
		OutputStream outputStream=new FileOutputStream("D:\\exportFile.xls");
		export.exportExcel(resource, outputStream);
		outputStream.flush();
		outputStream.close();
	}
	
	
	
/**
 * 文件导出方法
 * @param resource List<String[]> 集合类型,要导出的具体数据集合
 * @param outputStream 输出流,输出的Excel文件保存的具体位置
 * @throws IOException 
 */
	public void exportExcel(List<String[]> resource,OutputStream outputStream) throws IOException {
		//创建一个内存Excel对象
		HSSFWorkbook workbook=new HSSFWorkbook();
		//创建一个表格
		HSSFSheet sheet = workbook.createSheet("sheet1");
		//创建表头
		//获取表头内容  也就是resource集合的第零个索引的字符串数组
		String[] headerStr = resource.get(0);
		HSSFRow headeRow = sheet.createRow(0);
		//设置列宽
		for (int i = 0; i < headerStr.length; i++) {
			sheet.setColumnWidth(i, 5000);
		}
		//设置头单元格样式
		HSSFCellStyle headerStyle = workbook.createCellStyle();
		headerStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中
		//设置字体
		HSSFFont headerFont = workbook.createFont();
		//headerFont.setColor(HSSFColor.VIOLET.index);
		headerFont.setFontName("宋体");
		headerStyle.setFont(headerFont);
		
		//定义表头内容
		for (int i = 0; i < headerStr.length; i++) {
			//定义一个单元格
			HSSFCell headerCell = headeRow.createCell(i);
			headerCell.setCellStyle(headerStyle);
			headerCell.setCellValue(headerStr[i]);
		}
		
		//标题内容
		//样式
		HSSFCellStyle bodyStyle = workbook.createCellStyle();
		bodyStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中
		//设置字体
		HSSFFont bodyFont = workbook.createFont();
		//bodyFont.setColor(HSSFColor.BLUE.index);
		bodyFont.setFontName("宋体");
		bodyStyle.setFont(bodyFont);
		
		//创建行,上面表头已经创建过第0行了,所以这里从1开始
		for (int row = 1; row < headerStr.length; row++) {
			//输出的行数据
			String[] temp = resource.get(row);
			//创建行
			HSSFRow bodyRow = sheet.createRow(row);
			//循环创建列
			for (int cell = 0; cell < temp.length; cell++) {
				HSSFCell bodyCell = bodyRow.createCell(cell);
				bodyCell.setCellStyle(bodyStyle);
				bodyCell.setCellValue(temp[cell]);
			}
			
			
		}
		//将内存创建的excel对象,输出到文件夹中
		workbook.write(outputStream);
		
		
	}
}

运行测试类,生成Excel表格
在这里插入图片描述
导出结束,谢谢观赏!

posted @ 2020-03-08 17:16  你樊不樊  阅读(210)  评论(0编辑  收藏  举报