POI简单应用(word,excel)

POI简单应用(word,excel)
以前在一个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((short) 0);
   // 定义单元格为字符串类型(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((short) 0);
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()可以达到很好的效果。

你可能感兴趣的:(apache,jdk,工作,Excel,cgi)