POI框架实现创建Excel表、添加数据、读取数据

public class TestPOI2Excel {

//创建2003版本Excel用此方法
@Test
public void testWrite03Excel() throws Exception {
//创建工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
//创建工作表
HSSFSheet sheet = workbook.createSheet("hello World");//指定工作表名
//创建行
HSSFRow row = sheet.createRow(2);//创建第3行
//创建单元格
HSSFCell cell = row.createCell(2);
cell.setCellValue("Hello World");//设置内容

//输出到硬盘
FileOutputStream out = new FileOutputStream("E:\\测试.xls");
//把excel输出到具体的地址
workbook.write(out);
workbook.close();
out.close();

}
//读取2003版本的Excel表数据
@Test
public void testRead03Excel() throws Exception {
FileInputStream in = new FileInputStream("E:\\测试.xls");
//读取工作簿
HSSFWorkbook workbook = new HSSFWorkbook(in);
//读取工作表
HSSFSheet sheet = workbook.getSheet("hello World");//指定工作表名
//创建行
HSSFRow row = sheet.getRow(2);//读取第3行
//读取单元格
HSSFCell cell = row.getCell(2);
System.out.println("di3行第3列单元格的内容为:"+cell.getStringCellValue());

workbook.close();
in.close();

}
//创建并写入2007版本及以上版本用此方法
@Test
public void testWrite07Excel() throws Exception {
//创建工作簿
XSSFWorkbook workbook = new XSSFWorkbook();
//创建工作表
XSSFSheet sheet = workbook.createSheet("hello World");//指定工作表名
//创建行
XSSFRow row = sheet.createRow(2);//创建第3行
//创建单元格
XSSFCell cell = row.createCell(2);
cell.setCellValue("Hello World");//设置内容

//输出到硬盘
FileOutputStream out = new FileOutputStream("E:\\测试.xlsx");
//把excel输出到具体的地址
workbook.write(out);
workbook.close();
out.close();

}
@Test
public void testRead07Excel() throws Exception {
FileInputStream in = new FileInputStream("E:\\测试.xlsx");
//读取工作簿
XSSFWorkbook workbook = new XSSFWorkbook(in);
//读取工作表
XSSFSheet sheet = workbook.getSheet("hello World");//指定工作表名
//创建行
XSSFRow row = sheet.getRow(2);//读取第3行
//读取单元格
XSSFCell cell = row.getCell(2);
System.out.println("di3行第3列单元格的内容为:"+cell.getStringCellValue());

workbook.close();
in.close();

}
//代码优化 判断Excel表的版本
@Test
public void testRead03And07Excel() throws Exception {
String fileName="E:\\测试.xls";
FileInputStream in = new FileInputStream(fileName);
if(fileName.matches("^.+\\.(?i)((xls)|(xlsx))$")){//判断是否为Excel文档
boolean is03Excel=fileName.matches("^.+\\.(?i)((xls)|(xlsx))$");

//读取工作簿

Workbook workbook = is03Excel ? new HSSFWorkbook(in) : new XSSFWorkbook(in);
//读取工作表
Sheet sheet = workbook.getSheet("hello World");//指定工作表名
//创建行
Row row = sheet.getRow(2);//读取第3行
//读取单元格
Cell cell = row.getCell(2);
System.out.println("di3行第3列单元格的内容为:"+cell.getStringCellValue());

workbook.close();
in.close();
}
}
//Excel表格的样式属性
@Test
public void testExcelStyle()throws Exception{

//创建工作簿
HSSFWorkbook workbook=new HSSFWorkbook();
//合并单元格 合并第三行的第三列到第五列
CellRangeAddress cellRangeAddress = new CellRangeAddress(2, 2, 2, 4);
//1.2创建单元格式
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中
//1.3创建字体
HSSFFont font = workbook.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗字体
//font.setFontHeight((short)320);//设置字体大小,设置数/20
font.setFontHeightInPoints((short) 17);
//加载字体
cellStyle.setFont(font);
//单元格背景
//设置背景填充模式
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
//设置填充背景色
cellStyle.setFillBackgroundColor(HSSFColor.YELLOW.index);
//设置填充前景色
cellStyle.setFillForegroundColor(HSSFColor.RED.index);
HSSFSheet sheet = workbook.createSheet("hello World");

sheet.addMergedRegion(cellRangeAddress);
HSSFRow row = sheet.createRow(2);
HSSFCell cell = row.createCell(2);
//加载样式
cell.setCellStyle(cellStyle);
cell.setCellValue("helloWorld0");

//输出到硬盘
FileOutputStream out = new FileOutputStream("E:\\测试.xls");
//把excel输出到具体的地址
workbook.write(out);
workbook.close();
out.close();

}
}

posted on 2017-04-11 20:01  VbisoWen  阅读(351)  评论(0编辑  收藏  举报

导航