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;
}
}
源码为:
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;
}
}
相关文章推荐
- java poi excel 生成表格的工具封装
- 通过poi的XSSF实现生成excel文件
- 利用poi导出excel的工具类
- java里poi操作excel的工具类(兼容各版本)
- java利用poi生成excel文件后下载本地
- poi+jdbc实现从数据库中导出表的数据字典结构(单个sheet和多个sheet供你选择),并且生成excel文档,作者:vipyhd
- Excel格式报表生成—POI
- 敏捷工具,使用Excel自动生成故事卡
- Java-Maven-POI 简单导入导出Excel通用工具,默认使用基于poi实现
- 使用apache.poi生成Excel
- 使用POI生成Excel报表
- 【下拉列表值超过255问题】poi生成excel设置单列-解决方案
- java生成excel并下载(poi)
- POI 生成excel
- 基于POI的导出Excel工具类(网上一堆,表示导出的效率很差,本文支持自定义导出)
- POI导出excel+JFreeChart生成图表(柱状图和折线图)
- Java 使用 poi生成 Excel的方法
- 使用POI生成excel文件方法总结
- 读写Excel的工具类(JXL,POI,IText)
- POI生成excel带下拉