到目前为止,通过一个Servlet或者JSP生成一个逗号分割值(CSV)文件,然后作为MIME类型text/csv返回给浏览器,这还是在Java应用中创建Microsoft Excel文件的最常用的方法。浏览器会调用Excel,并显示CSV格式的文件。
现在有了一个为Java开发人员提供能够真正创建Excel文件的方案。这就是一个称作POI(“可怜的混乱实现”)的新的Jakarta项目组中最成熟的部分。POI中Excel组件命名为HSSF(“可怕的电子表格格式”)。
虽然HSSF提供了许多不同的和引擎交互的方式,我们这儿集中于简单的高层用户API的讨论。
下面是在一个Excel表格中创建一个矩阵的简单例子:
import org.apache.poi.hssf.usermodel.*;
import java.io.FileOutputStream;
// code run against the jakarta-poi-1.5.0-FINAL-20020506.jar.
public class PoiTest {
static public void main(String[] args) throws Exception {
FileOutputStream fos = new FileOutputStream("foo.xls");
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet s = wb.createSheet();
wb.setSheetName(0, "Matrix");
for(short i=0; i<50; i++) {
HSSFRow row = s.createRow(i);
for(short j=0; j<50; j++) {
HSSFCell cell = row.createCell(j);
cell.setCellValue(""+i+","+j);
}
}
wb.write(fos);
fos.close();
}
}
这段代码首先创建一个Workbook,从该Workbook中得到一个表格、命名,然后继续写入一个50x50的矩阵。最后输出到一个名为foo.xls的Excel文件,甚至在Apple Mac机上也可以打开。
POI项目是Java应用的令人兴奋的一步,为用户提供了Windows文档集成的新功能,允许Java开发人员方便地扩展其产品的功能。