小试POI

在阅读过上篇关于POI的文章后,我想再来看下面的东东简直是轻而易举.因为多MS操作的缘故,先后尝试了J-O桥接,excel jdbc driver(依然存在问题,脑壳笨),现在使用POI这种方式感觉是比较简单,但在读取时有些烦琐.根据应用来选了吧.再学习学习!package tt;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class ttpoi {
 POIFSFileSystem fs;
 HSSFWorkbook wb;
 
 //写入文件
 public void writefun(String fname) throws IOException{
  FileOutputStream filefun=new FileOutputStream(fname);
  wb.write(filefun);
  filefun.close();
 }
 
 //初始
 public ttpoi(String FilePath){
  try{
   fs=new POIFSFileSystem(new FileInputStream(FilePath));
   wb=new HSSFWorkbook(fs);
   }
  catch(IOException e){}
 }
 
 //控制台输出
 public void printout(HSSFSheet sheet){
  try{
  HSSFRichTextString stringCellValue=null;
  double numericCellValue=0;
  HSSFCell cell=null;
  HSSFRow row=null;
  //System.out.print(sheet.getLastRowNum());
  int i;
  short n;
    for(i=sheet.getFirstRowNum();i<sheet.getLastRowNum();i++)
      {
       row = sheet.getRow(i);
       for(n=row.getFirstCellNum();n<row.getLastCellNum();n++)
        {
         //现在很郁闷的就是POI将String与数值分得很开,因此需要获取cell type.1是string,0是num.还有就是data type
         cell=row.getCell(n);
         switch(cell.getCellType()){
          case 1: stringCellValue = cell.getRichStringCellValue();System.out.print(stringCellValue+" ");break;
          case 0: numericCellValue = cell.getNumericCellValue();System.out.print((int)numericCellValue+" ");break;
          
         }
         }
         System.out.println();
       }  
   }
   catch(Exception e){
       System.out.println(e);
    }
 }

//@SuppressWarnings("deprecation")
public  static void main(String[] ags){
  
    ttpoi basin=new ttpoi("F://20070904.xls");
  HSSFSheet sheet = basin.wb.getSheetAt(0);
  basin.printout(sheet);
 
 
  }
}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值