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
表格
导出结束,谢谢观赏!
作者:樊同学
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!