poi生成excel工具类

来源:互联网 发布:ug编程实例 编辑:程序博客网 时间:2024/05/16 13:55

1.系统开发中经常需要使用报表导出功能,这是我们可以使用POI框架进行excel的操作,所以就开发出一个工具类进行数据的操作,生成测试文件结构如下

excel

源码为:

import java.io.File;
import java.io.FileOutputStream;
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.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;


/**
 * 使用poi框架将数据装换成excel
 * 
 * 
 */
public class ExportToExcel
{


public static void main(String[] args) throws Exception
{
List<String> header = new ArrayList<String>();


header.add("用户名");
header.add("密码");
header.add("性别");
header.add("职位");


ExportToExcel excel = new ExportToExcel(header, "人员信息");
HSSFSheet sheet = excel.createSheet("第一页");
excel.initHeader(sheet);


for (short i = 1; i < 100; i++)
{
HSSFRow row = sheet.createRow(i);


for (short j = 0; j < 4; j++)
{
row.createCell(j, HSSFCell.CELL_TYPE_NUMERIC).setCellValue(1);
}
}


excel.export("C:");
System.out.println("创建成功!");
}


// excel每一列的标题
private List<String> headers;
// 生成文件名称
private String fileName;


private FileOutputStream fos;


public ExportToExcel()
{
// TODO Auto-generated constructor stub
}


private static final int HEADER_NUMBER = 0;// 标题栏的位置


// excel对象
private HSSFWorkbook wb = new HSSFWorkbook();


public ExportToExcel(List<String> headers, String fileName)
{
this.headers = headers;
this.fileName = fileName;
}


/**
* 初始化标题栏
*/
public void initHeader(HSSFSheet sheet)
{
if (null != headers)
{
HSSFRow row = sheet.createRow(HEADER_NUMBER);
for (short i = 0; i < headers.size(); i++)
{
HSSFRichTextString text = new HSSFRichTextString(headers.get(i));
// 创建单元格并且给单元格赋值
row.createCell(i, HSSFCell.CELL_TYPE_STRING).setCellValue(text);
}
}
}


/**
* 将数据装换成excel

* @param path
*            生成文件保存路径
*/
public void export(String path) throws Exception
{
String filename = this.getFileName() + ".xls";
fos = new FileOutputStream(new File(path, filename));
wb.write(fos);
fos.close();
}


/**
* 创建一个新的sheet

* @param sheetName
*            sheet的名称
* @return
*/
public HSSFSheet createSheet(String sheetName)
{
return wb.createSheet(sheetName);
}


public List<String> getHeaders()
{
return headers;
}


public void setHeaders(List<String> headers)
{
this.headers = headers;
}


public String getFileName()
{
return fileName;
}


public void setFileName(String fileName)
{
this.fileName = fileName;
}


}


0 0
原创粉丝点击