posts - 24,  comments - 25,  trackbacks - 0
以前在一个OA项目里使用过POI包来导入导出过Excel,所以在此再回忆一遍,方便自己和大家以后使用。

POI可以让你使用Java来读写Excel、Word文件

要求:JDK 1.4 + POI开发包(可以到 http://www.apache.org/dyn/closer.cgi/jakarta/poi/ 下载)

相关的说明文档

官方网站: http://jakarta.apache.org/poi/

创建Excel 文档

示例1将演示如何利用Jakarta POI API 创建Excel 文档。

示例1程序如下:

 

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileOutputStream;

public class CreateXL {
 
/** Excel 文件要存放的位置,假定在D盘下*/
 
public static String outputFile="D:\\test.xls";

 
public static void main(String argv[]){
  
try{

   
// 创建新的Excel 工作簿

   HSSFWorkbook workbook 
= new HSSFWorkbook();
 
   
// 在Excel工作簿中建一工作表,其名为缺省值
     
// 如要新建一名为"效益指标"的工作表,其语句为:
     
// HSSFSheet sheet = workbook.createSheet("sheet1");

   HSSFSheet sheet 
= workbook.createSheet();

   
// 在索引0的位置创建行(第一行)

   HSSFRow row 
= sheet.createRow((short)0);

   
//在索引0的位置创建单元格(第一列)
   HSSFCell cell = row.createCell((short0);
   
// 定义单元格为字符串类型(Excel-设置单元格格式-数字-文本;不设置默认为“常规”,也可以设置成其他的,具体设置参考相关文档)
   cell.setCellType(HSSFCell.CELL_TYPE_STRING);
   
// 在单元格中输入一些内容
   cell.setCellValue("你要输入的内容");
   
// 新建一输出文件流
   FileOutputStream fOut = new FileOutputStream(outputFile);
   
// 把相应的Excel 工作簿存盘
   workbook.write(fOut);
   fOut.flush();
   
// 操作结束,关闭文件
   fOut.close();
   System.out.println(
"文件生成");

  }
catch(Exception e) {
   System.out.println(
"已运行 xlCreate() : " + e );
  }

 }

}


读取Excel文档中的数据

示例2将演示如何读取Excel文档中的数据

示例2程序如下:

 

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileInputStream;

public class ReadXL {
 
/** Excel文件的存放位置。注意是正斜线*/
 
public static String fileToBeRead="D:\\test1.xls";
 
 
public static void main(String argv[])
  
try{
   
// 创建对Excel工作簿文件的引用
   HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
   
// 创建对工作表的引用。
   
// 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")
   HSSFSheet sheet = workbook.getSheet("Sheet1");
   
// 也可用getSheetAt(int index)按索引引用,
   
// 在Excel文档中,第一张工作表的缺省索引是0,
   
// 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
   
// 读取左上端单元
   HSSFRow row = sheet.getRow(0);
   HSSFCell cell 
= row.getCell((short)0);
   
// 输出单元内容,cell.getStringCellValue()就是取所在单元的值
   System.out.println("左上端单元是: " + cell.getStringCellValue()); 
  }
catch(Exception e) {
   System.out.println(
"已运行xlRead() : " + e );
  }

 }

}



1、创建字体,设置其为红色、粗体:

HSSFFont font = workbook.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

 

2、创建格式

HSSFCellStyle cellStyle= workbook.createCellStyle();
cellStyle.setFont(font);

 

3、应用格式

HSSFCell cell = row.createCell((short0);
cell.setCellStyle(cellStyle);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(
"标题"); 


处理word文档

import java.io.*
import org.textmining.text.extraction.WordExtractor;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;

public class TestPoi 
public TestPoi() 
}
 
public static void main(String args[]) throws Exception 

FileInputStream in 
= new FileInputStream ("D:\\a.doc"); 
WordExtractor extractor 
= new WordExtractor(); 
String str 
= extractor.extractText(in); 
//System.out.println("the result length is"+str.length()); 
System.out.println(str); 
}
 
}
 


补充:其实上面的导入导出,只要灵活应用,结合if ()和for()可以达到很好的效果。

下一篇我会简单介绍以下web中怎么使用上传和下载excel和word。

posted on 2008-02-18 09:48 Jarry 阅读(3431) 评论(5)  编辑  收藏 所属分类: POI-Excel/Word

只有注册用户登录后才能发表评论。


网站导航: