使用POI中的HSSF创建Excel文件
from: http://www.cn-java.com/target/news.php?news_id=2510
出处 CN-JAVA翻译: 孤魂一笑
作者:孤魂一笑(bingo_ge@hotmail.com) 日期:2003-05-05
介绍: Jakarta_POI 使用Java读写Excel(97-2002)文件,可以满足大部分的需要。 因为刚好有一个项目使用到了这个工具,花了点时间顺便翻译了一下POI本身 带的一个Guide.有一些节减和修改,希望给使用这个项目的人一些入门帮助。 POI 下面有几个自项目:HSSF用来实现Excel 的读写.以下是HSSF的主页 http://jakarta.apache.org/poi/hssf/index.html 下面的介绍是基于以下地址的翻译: http://jakarta.apache.org/poi/hssf/quick-guide.html 目前的版本为1.51应该是很长时间之内的一个稳定版,但HSSF提供的Sample不是基于 1.51所写,所以使用的时候需要适当的注意. 其实POI下面的几个子项目侧重不同读写 Word 的HDF正在开发当中. XML下的FOP(http://xml.apache.org/fop/index.html) 可以输出pdf文件,也是比较好的一个工具 目录: 创建一个workbook 创建一个sheet 创建cells 创建日期cells 设定单元格格式
说明: 以下可能需要使用到如下的类 import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFDataFormat; 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;
创建workbook
HSSFWorkbook wb = new HSSFWorkbook(); //使用默认的构造方法创建workbook FileOutputStream fileOut = new FileOutputStream("workbook.xls"); //指定文件名 wb.write(fileOut); //输出到文件 fileOut.close();
创建一个sheet
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet1 = wb.createSheet("new sheet"); //workbook创建sheet HSSFSheet sheet2 = wb.createSheet("second sheet"); //workbook创建另外的sheet FileOutputStream fileOut = new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close();
创建cells HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); //注意以下的代码很多方法的参数是short 而不是int 所以需要做一次类型转换 HSSFRow row = sheet.createRow((short)0); //sheet 创建一行 HSSFCell cell = row.createCell((short)0); //行创建一个单元格 cell.setCellValue(1); //设定单元格的值 //值的类型参数有多中double ,String ,boolean, row.createCell((short)1).setCellValue(1.2); row.createCell((short)2).setCellValue("This is a string"); row.createCell((short)3).setCellValue(true);
// Write the output to a file FileOutputStream fileOut = new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close();
创建日期cells HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet");
HSSFRow row = sheet.createRow((short)0);
HSSFCell cell = row.createCell((short)0); //设定值为日期 cell.setCellValue(new Date());
HSSFCellStyle cellStyle = wb.createCellStyle(); //指定日期显示格式 cellStyle.setDataFormat(HSSFDataFormat.getFormat("m/d/yy h:mm")); cell = row.createCell((short)1); cell.setCellValue(new Date()); //设定单元格日期显示格式 cell.setCellStyle(cellStyle);
FileOutputStream fileOut = new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close();
设定单元格格式 单元格格式的设定有很多形式包括单元格的对齐方式,内容的字体设置, 单元格的背景色等,因为形式比较多,只举一些例子.以下的例子在 POI1.5中可能会有所改变具体查看API. .......... // Aqua background HSSFCellStyle style = wb.createCellStyle(); //创建一个样式 style.setFillBackgroundColor(HSSFCellStyle.AQUA); //设定此样式的的背景颜色填充 style.setFillPattern(HSSFCellStyle.BIG_SPOTS);
//样式的填充类型。 //有多种式样如: //HSSFCellStyle.BIG_SPOTS //HSSFCellStyle.FINE_DOTS //HSSFCellStyle.SPARSE_DOTS等 style.setAlignment(HSSFCellStyle.ALIGN_CENTER ); //居中对齐 style.setFillBackgroundColor(HSSFColor.GREEN.index); //设定单元个背景颜色 style.setFillForegroundColor(HSSFColor.RED.index); //设置单元格显示颜色 HSSFCell cell = row.createCell((short) 1); cell.setCellValue("X"); cell.setCellStyle(style);
|
参考:
http://jakarta.apache.org/poi/hssf/quick-guide.htmlhttp://spaces.msn.com/qiqiboy/blog/