java解析Excel存储-对单元格内容判断

来源:互联网 发布:淘宝万堂书院 编辑:程序博客网 时间:2024/05/22 14:21
 
 
package testexcel;
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;
import java.io.FileInputStream;
import org.apache.poi.hssf.usermodel.HSSFComment;
public class CreateXL {
    public static String xlsFile = "test.xls"; //产生的Excel文件的名称
    public static void main(String args[]) {
        try {
            HSSFWorkbook workbook = new HSSFWorkbook(); //产生工作簿对象
            HSSFSheet sheet = workbook.createSheet(); //产生工作表对象
//设置第一个工作表的名称为firstSheet
//为了工作表能支持中文,设置字符编码为UTF_16
            workbook.setSheetName(0, "firstSheet", HSSFWorkbook.ENCODING_UTF_16);
//产生一行
            HSSFRow row = sheet.createRow((short) 0);
//产生第一个单元格
            HSSFCell cell = row.createCell((short) 0);
//设置单元格内容为字符串型
            cell.setCellType(HSSFCell.CELL_TYPE_STRING);
//为了能在单元格中写入中文,设置字符编码为UTF_16。
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);
//往第一个单元格中写入信息
            cell.setCellValue("测试成功");
            FileOutputStream fOut = new FileOutputStream(xlsFile);
            workbook.write(fOut);
            fOut.flush();
            fOut.close();
            System.out.println("文件生成...");
//以下语句读取生成的Excel文件内容
            xlsFile = "testdata.xls";
            FileInputStream fIn = new FileInputStream(xlsFile);
            HSSFWorkbook readWorkBook = new HSSFWorkbook(fIn);
//            HSSFSheet readSheet = readWorkBook.getSheet("firstSheet");
             HSSFSheet readSheet = readWorkBook.getSheetAt(0);
            //HSSFRow readRow = readSheet.getRow(0);
                System.out.println(readSheet.getPhysicalNumberOfRows());
                System.out.println(readSheet.getDefaultColumnWidth());
            int maxrow = readSheet.getPhysicalNumberOfRows();
            int col = readSheet.getDefaultColumnWidth();
            for(int i = 0 ; i < maxrow ; i++){
                  HSSFRow readRow = readSheet.getRow(i); 
                
                  for(int j = 0 ; j < col-2 ; j ++){
                     HSSFCell readCell = readRow.getCell((short) j);
                   System.out.println(readRow.getCell((short) j).getCellType());
                   if(readRow.getCell((short) j).getCellType()==HSSFCell.CELL_TYPE_BLANK){
                       System.out.print("空格");
                   }else{
                            System.out.print(readCell.toString());
                   }
              
                }
                 System.out.println();
            }
            HSSFRow readRow = readSheet.getRow(0);
            //System.out.println(readRow.getRowNum());
            HSSFCell readCell = readRow.getCell((short) 0);
            System.out.println("CELL_TYPE_STRING" + HSSFCell.CELL_TYPE_STRING);
            System.out.println("CELL_TYPE_BLANK" + HSSFCell.CELL_TYPE_BLANK);
            System.out.println("CELL_TYPE_BOOLEAN" + HSSFCell.CELL_TYPE_BOOLEAN);
            System.out.println("CELL_TYPE_ERROR" + HSSFCell.CELL_TYPE_ERROR);
            System.out.println("CELL_TYPE_FORMULA" + HSSFCell.CELL_TYPE_FORMULA);
            System.out.println("CELL_TYPE_NUMERIC" + HSSFCell.CELL_TYPE_NUMERIC);
            System.out.println("ENCODING_UTF_16" + HSSFCell.ENCODING_UTF_16);
              System.out.println("ENCODING_UNCHANGED" + HSSFCell.ENCODING_UNCHANGED);
            System.out.println("第一个单元是:" + readCell.getStringCellValue());
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}
 



独有“帐号保险柜”,保护网银网游密码,瑞星2008版免费  
原创粉丝点击