您的位置:首页 > 其它

poi生成excel工具类

2014-04-06 13:33 344 查看
1.系统开发中经常需要使用报表导出功能,这是我们可以使用POI框架进行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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: