POI入门及简单应用
第一步:下载压缩包
到官网http://poi.apache.org/download.html#archive下载POI的压缩包,如下图所示,poi-bin-3.15-20160924.zip是Windows系统所用到的包,poi-bin-3.15-20160924.tar.gz是Linux系统所需要的包。我们下载Windows系统下所需要的poi-bin-3.15-20160924.zip。
第二步:解压并查看都有哪些Jar包
2.1 我们解压第一步下载的压缩包,解压后是名为poi-3.15的文件夹。
2.2 我们进入到poi-3.15文件夹下,我们可以看到有lib、ooxml-lib文件夹(这两个文件夹里面也是jar包)以及以poi开头的一些jar包,我们需要所有的jar包。
第三步:工程中导入jar包
3.1 我用的是Java EE,Java EE使用外部包的话,最好使用User Library的方式,因为直接建lib包并导入jar包并包含到项目中的话,jar包的排版特别难看。那么怎么新建一个User Library呢,我们点"Window"然后点"Preferences",如下图所示。
点击上图的"Preferences"之后,会进入到如下图所示的界面,我们在搜索框中输入"User Libraries"就会搜到在Java的Build Path下面有User Libraries,我们点击它,就会看到图右侧的内容(当然,刚开始是没有poiJar和hadoopJar的,这是我建好的),我们点击"New...",然后输入要新建的User Library的名字,我起的名字是poiJar。建好了Library之后就是向里面添加jar包,我们点击"Add External JARs..."按钮,在弹出的对话框中选择我们在第二步中提到的lib、ooxml-lib文件夹下的所有jar包,以及与lib文件夹同级的所有以poi开头的jar包,都添加到poiJar当中去。
3.2 弄好了poiJar之后,我们就让工程引用一下该poiJar,方法是我们在工程上右键--------->点击"Build Path"-------->点击"Configure Build Path....",如下图所示。
点击上图的“Configure Build Path...."之后,我们会看到如下图所示的界面,刚开始只有JRE System Library,如下图所示。我们要添加Library,点击"Add Library..."
我们会看到如下图所示,我们点击”User Library“。然后点击“Next”
接下来我们会看到如下图所示的界面,我们勾选上poiJar,然后点击"Finish"
接下来我们会看到如下图所示的界面,我们可以看到poiJar下面有很多jar包了。我们点击"OK"。
点击"OK"之后,我们再看看我们的工程下面就多了一个外部Library,poiJar下面是我们所要用到的所有POI的jar包。
第四步:使用POI
导好了jar包,接下来我们便用一个例子来测试一下POI是否可用,我新建了一个叫TestPOI的类,在该类中使用我们POI的功能,向D盘根目录生成一个Excel文件。
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@SuppressWarnings("resource")
public static void main(String[] args) throws Exception {
//创建工作簿---->XSSF代表10版的Excel(HSSF是03版的Excel)
XSSFWorkbook wb = new XSSFWorkbook();
//工作表
XSSFSheet sheet = wb.createSheet("会员列表");
//标头行,代表第一行
XSSFRow header=sheet.createRow(0);
//创建单元格,0代表第一行第一列
XSSFCell cell0=header.createCell(0);
cell0.setCellValue("会员级别");
header.createCell(1).setCellValue("会员编号");
header.createCell(2).setCellValue("会员姓名");
header.createCell(3).setCellValue("推荐人编号");
header.createCell(4).setCellValue("负责人编号");
header.createCell(5).setCellValue("地址编号");
header.createCell(6).setCellValue("注册时间");
//设置列的宽度
//getPhysicalNumberOfCells()代表这行有多少包含数据的列
for(int i=0;i<header.getPhysicalNumberOfCells();i++){
//POI设置列宽度时比较特殊,它的基本单位是1/255个字符大小,
//因此我们要想让列能够盛的下20个字符的话,就需要用255*20
sheet.setColumnWidth(i, 255*20);
}
//设置行高,行高的单位就是像素,因此30就是30像素的意思
header.setHeightInPoints(30);
//上面设置好了内容,我们当然是要输出到某个文件的,输出就需要有输出流
FileOutputStream fos= new FileOutputStream("d:/2010.xlsx");
//向指定文件写入内容
wb.write(fos);
fos.close();
}
}
运行上面的程序,我们再到D盘根目录下看一下是否有我们要生成的2010.xlsx文件,我们发现确实已经正常生成,如下图所示。
我们打开2010.xlsx文件,看生成的内容是否正确,发现生成的内容包括行高都符合我们设定的值,完全没问题!
好了,以上便是POI的简单应用了。