package dss;import java.io.FileInputStream;
import java.io.FileOutputStream;import java.text.DecimalFormat;import org.apache.poi.hssf.usermodel.HSSFCell;
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.hssf.model.Workbook;
import org.apache.poi.hssf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;/**
 * 
 * @author shiwt
 * 
 * java读取excel文件
 * 
 * 一个Excel文件的层次:Excel文件->工作表->行->单元格 对应到POI中,为:workbook->sheet->row->cell
 *  
 */
public class Aaaaaaaa {public static String outputFile = "e:\\test\\tels2.xls"; public static String fileToBeRead = "e:\\test\\tels.xls"; public void CreateExcel() {
  try {
   // 创建新的Excel 工作簿
   HSSFWorkbook workbook = new HSSFWorkbook();
   // 在Excel工作簿中建一工作表,其名为缺省值
   // 如要新建一名为"效益指标"的工作表,其语句为:
   // HSSFSheet sheet = workbook.createSheet("效益指标");
   HSSFSheet sheet = workbook.createSheet();
   // 在索引0的位置创建行(最顶端的行)
   HSSFRow row = sheet.createRow((short) 0);
   //在索引0的位置创建单元格(左上端)
   HSSFCell cell = row.createCell((short) 0);
   // 定义单元格为字符串类型
   cell.setCellType(HSSFCell.CELL_TYPE_STRING);
   // 在单元格中输入一些内容
   cell.setCellValue("sweater");
   // 新建一输出文件流
   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,遍历各个小格获取其中信息,并判断其是否是手机号码,并对正确的手机号码进行显示
  * 
  * 
  * 注意: 1.sheet, 以0开始,以workbook.getNumberOfSheets()-1结束 2.row,
  * 以0开始(getFirstRowNum),以getLastRowNum结束 3.cell,
  * 以0开始(getFirstCellNum),以getLastCellNum结束, 结束的数目不知什么原因与显示的长度不同,可能会偏长
  *  
  */
 public void readExcel() {
  //将被表示成1.3922433397E10的手机号转化为13922433397,不一定是最好的转换方法
  DecimalFormat df = new DecimalFormat("#");  try {
   // 创建对Excel工作簿文件的引用
   HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(
 fileToBeRead));
   //System.out
   //  .println("===SheetsNum===" + workbook.getNumberOfSheets());//获取sheet数
   for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) {
if (null != workbook.getSheetAt(numSheets)) {
 HSSFSheet aSheet = workbook.getSheetAt(numSheets);//获得一个sheet
 //System.out.println("+++getFirstRowNum+++" +
 // aSheet.getFirstRowNum());//
 //System.out.println("+++getLastRowNum+++" +
 // aSheet.getLastRowNum());  for (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet
   .getLastRowNum(); rowNumOfSheet++) {
  if (null != aSheet.getRow(rowNumOfSheet)) {
   HSSFRow aRow = aSheet.getRow(rowNumOfSheet);    //System.out.println(">>>getFirstCellNum<<<"+
   // aRow.getFirstCellNum());
   //System.out.println(">>>getLastCellNum<<<"+
   // aRow.getLastCellNum());
   for (short cellNumOfRow = 0; cellNumOfRow <= aRow
 .getLastCellNum(); cellNumOfRow++) {  if (null != aRow.getCell(cellNumOfRow)) {
 HSSFCell aCell = aRow.getCell(cellNumOfRow);

 int cellType = aCell.getCellType();
 System.out.println(cellType);
 String strCell="";
 if(cellType==0){
     if(aCell
.getNumericCellValue()==223){
   strCell ="peinan";
   }else{  
     strCell = "yiyi";
    }  
     System.out.println(strCell);    
   }
 else if(cellType==1){
 strCell = aCell.getStringCellValue();
 System.out.println(strCell);
   }
 //System.out.println("格式不对不读");//其它格式的数据
 
 HSSFWorkbook workbook1 = new HSSFWorkbook();
// 在Excel工作簿中建一工作表,其名为缺省值
// 如要新建一名为"效益指标"的工作表,其语句为:
// HSSFSheet sheet = workbook.createSheet("效益指标");
HSSFSheet sheet = workbook1.createSheet();
// 在索引0的位置创建行(最顶端的行)
HSSFRow row = sheet.createRow((short) 0);
//在索引0的位置创建单元格(左上端)
HSSFCell cell = row.createCell((short) 0);
// 定义单元格为字符串类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
// 在单元格中输入一些内容
cell.setCellValue(strCell);
FileOutputStream fOut = new FileOutputStream(outputFile);
   // 把相应的Excel 工作簿存盘
   workbook.write(fOut);
   fOut.flush();
   // 操作结束,关闭文件
   fOut.close();
}    }
  }  } }   }  } catch (Exception e) {
   System.out.println("ReadExcelError" + e);
  } }  public static void main(String[] args) {
   System.out.println("===");
  Aaaaaaaa poi = new Aaaaaaaa();
//  poi.CreateExcel();
  poi.readExcel(); 
System.out.println("===");

 }
}

解决方案 »

  1.   

    http://dev.csdn.net/article/49/49919.shtm
      

  2.   

    晕啊, laocai8(★仍在拼搏★) 大哥,copy我的代码,包名都不改啊,还用我的项目名字啊:)
      

  3.   

    高手们,能给我个有关对word的操作的源程序吗?
      

  4.   

    to 小裴 
    呵呵,是啊,copy的包名都忘了去了
      

  5.   


    俺也在做用Poi包存取word的程序,
    高手们,能发个有关对word的操作的源程序吗?
      

  6.   

    我也要用Poi包存取word的程序呀.