网络浪子 发表于 2015-7-31 09:37:45

利用Apache POI读取并解析Excel的数据

  /*
* Created on 2010-12-9
* java读取excel文件
*
*/
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;
/**
*         java读取excel文件
*         一个Excel文件的层次:Excel文件->工作表->行->单元格
*         对应到POI中,为:workbook->sheet->row->cell
*
*/
public class HelloWorld {
    public static String outputFile = "e:\\test\\tels.xls";
    public static String fileToBeRead = "e:\\src\\test1.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数
            int iSheetNum = workbook.getNumberOfSheets();
            for (int numSheets = 0; numSheets < iSheetNum; numSheets++) {
                if (null != workbook.getSheetAt(numSheets)) {
                  HSSFSheet aSheet = workbook.getSheetAt(numSheets);// 获得一个sheet
                  // System.out.println("+++getFirstRowNum+++" +
                  // aSheet.getFirstRowNum());//
                  // System.out.println("+++getLastRowNum+++" +
                  // aSheet.getLastRowNum());
                  int iRowNum = aSheet.getLastRowNum();
                  for (int rowNumOfSheet = 0; rowNumOfSheet
页: [1]
查看完整版本: 利用Apache POI读取并解析Excel的数据