一、获得POI包
wget http://apache.fayea.com/poi/release/bin/poi-bin-3.14.tar.gz
二、解开后导入构建路径
三、测试
package www.zjptcc.wxw.poi;
import org.apache.poi.hpsf.DocumentSummaryInformation;
import org.apache.poi.hpsf.SummaryInformation;
import org.apache.poi.hssf.usermodel.*;
import java.io.FileOutputStream;// code run against the jakarta-poi-1.5.0-FINAL-20020506.jar.
import java.util.Date;
public class PoiTestWrite
{
private static HSSFWorkbook wb;
static public void main(String[] args) throws Exception
{
FileOutputStream fos = new FileOutputStream( "./test.xls");
wb = new HSSFWorkbook();
HSSFSheet first_sheet = wb.createSheet();
wb.setSheetName(0, "first sheet ");
HSSFRow row = first_sheet.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellValue( "Hello! This message is generated from POI. ");
//创建单元格
HSSFSheet test_sheet = wb.createSheet("Test");// 创建工作表(Sheet)
row = test_sheet.createRow(0);// 创建行,从0开始
cell = row.createCell(0);// 创建行的单元格,也是从0开始
cell.setCellValue("李志伟");// 设置单元格内容
row.createCell(1).setCellValue(false);// 设置单元格内容,重载
row.createCell(2).setCellValue(new Date());// 设置单元格内容,重载
row.createCell(3).setCellValue(12.345);// 设置单元格内容,重载
//创建批注
HSSFPatriarch patr = test_sheet.createDrawingPatriarch();
HSSFClientAnchor anchor = patr.createAnchor(0, 0, 0, 0, 5, 1, 8, 3);//创建批注位置
HSSFComment comment = patr.createCellComment(anchor);//创建批注
comment.setString(new HSSFRichTextString("这是一个批注段落!"));//设置批注内容
comment.setAuthor("李志伟");//设置批注作者
comment.setVisible(true);//设置批注默认显示
cell = test_sheet.createRow(2).createCell(1);
cell.setCellValue("测试");
cell.setCellComment(comment);//把批注赋值给单元格
//创建文档摘要信息
wb.createInformationProperties();//创建文档信息
DocumentSummaryInformation dsi= wb.getDocumentSummaryInformation();//摘要信息
dsi.setCategory("类别:Excel文件");//类别
dsi.setManager("管理者:李志伟");//管理者
dsi.setCompany("公司:--");//公司
SummaryInformation si = wb.getSummaryInformation();//摘要信息
si.setSubject("主题:--");//主题
si.setTitle("标题:测试文档");//标题
si.setAuthor("作者:李志伟");//作者
si.setComments("备注:POI测试文档");//备注
wb.write(fos);
fos.close();
System.out.println("xls文件被保存!");
}
}
四、
五、读
package www.zjptcc.wxw.poi;
import org.apache.poi.poifs.filesystem.*;
import org.apache.poi.hssf.usermodel.*;
import java.io.*;
public class PoiTestRead
{
private static HSSFWorkbook wb;
static public void main(String[] args) throws Exception
{
POIFSFileSystem fs=new POIFSFileSystem(new FileInputStream("./111.xls"));
wb = new HSSFWorkbook(fs);
HSSFSheet sheet=wb.getSheetAt(1); //得到Excel工作表的sheet编号,0开始
HSSFRow row=sheet.getRow(1); //得到Excel工作表指定行,参数0开始对应excel表第1行
HSSFCell cell=row.getCell(3); //得到Excel工作表指定行的单元格(列),参数0开始对应excel表第A列
String msg = cell.getStringCellValue(); //得到单元格内容
System.out.println("从当前目录下读取excel文件:111.xls...");
System.out.print("第二个sheet 2D单元格的内容:");
System.out.println(msg);
sheet=wb.getSheetAt(0);
row=sheet.getRow(0);
cell=row.getCell(0);
System.out.print("第一个sheet 1A单元格的内容:");
System.out.println(cell.getStringCellValue());
}
}