POI对Excel的各种操作

POI操作Excel


最近用到poi对Excel的导入导出,查阅了一下资料 不经意找到一个详细的说明:
在这里记录一下。
EXCEL常用操作方法:

1、 得到Excel常用对象

POIFSFileSystem fs=newPOIFSFileSystem(new FileInputStream("d:/test.xls"));     
//得到Excel工作簿对象      
HSSFWorkbook wb = new HSSFWorkbook(fs);    
//得到Excel工作表对象      
HSSFSheet sheet = wb.getSheetAt(0);     
//得到Excel工作表的行      
HSSFRow row = sheet.getRow(i);    
//得到Excel工作表指定行的单元格      
HSSFCell cell = row.getCell((short) j);    
cellStyle = cell.getCellStyle();//得到单元格样式    
POIFSFileSystem fs=newPOIFSFileSystem(new FileInputStream("d:/test.xls"));   
//得到Excel工作簿对象   
HSSFWorkbook wb = new HSSFWorkbook(fs);  
//得到Excel工作表对象   
HSSFSheet sheet = wb.getSheetAt(0);   
//得到Excel工作表的行   
HSSFRow row = sheet.getRow(i);  
//得到Excel工作表指定行的单元格   
HSSFCell cell = row.getCell((short) j);  
cellStyle = cell.getCellStyle();//得到单元格样式  

2、建立Excel常用对象

HSSFWorkbook wb = new HSSFWorkbook();//创建Excel工作簿对象     
HSSFSheet sheet = wb.createSheet("new sheet");//创建Excel工作表对象       
HSSFRow row = sheet.createRow((short)0); //创建Excel工作表的行     
cellStyle = wb.createCellStyle();//创建单元格样式     
row.createCell((short)0).setCellStyle(cellStyle); //创建Excel工作表指定行的单元格     
row.createCell((short)0).setCellValue(1); //设置Excel工作表的值    
HSSFWorkbook wb = new HSSFWorkbook();//创建Excel工作簿对象  
HSSFSheet sheet = wb.createSheet("new sheet");//创建Excel工作表对象    
HSSFRow row = sheet.createRow((short)0); //创建Excel工作表的行  
cellStyle = wb.createCellStyle();//创建单元格样式  
row.createCell((short)0).setCellStyle(cellStyle); //创建Excel工作表指定行的单元格  
row.createCell((short)0).setCellValue(1); //设置Excel工作表的值  

3、设置sheet名称和单元格内容

wb.setSheetName(1, "第一张工作表",HSSFCell.ENCODING_UTF_16);            
cell.setEncoding((short) 1);        
cell.setCellValue("单元格内容");    
wb.setSheetName(1, "第一张工作表",HSSFCell.ENCODING_UTF_16);          
cell.setEncoding((short) 1);      
cell.setCellValue("单元格内容");   

4、设置列宽、行高

sheet.setColumnWidth((short)column,(short)width);        
row.setHeight((short)height);      
sheet.setColumnWidth((short)column,(short)width);      
row.setHeight((short)height);   

5、保存Excel文件

FileOutputStream fileOut = new FileOutputStream(path);     
wb.write(fileOut);     
FileOutputStream fileOut = new FileOutputStream(path);   
wb.write(fileOut);   

没用到太多,所以就找了这一点

补充一个读取excel单元格,获取单元格各类型值,返回字符串类型

 //获取单元格各类型值,返回字符串类型
    private static String getCellValueByCell(Cell cell) {
        //判断是否为null或空串
        if (cell==null || cell.toString().trim().equals("")) {
            return "";
        }
        String cellValue = "";
        int cellType=cell.getCellType();
        if(cellType==Cell.CELL_TYPE_FORMULA){ //表达式类型
            cellType=evaluator.evaluate(cell).getCellType();
        }
         
        switch (cellType) {
        case Cell.CELL_TYPE_STRING: //字符串类型
            cellValue= cell.getStringCellValue().trim();
            cellValue=StringUtils.isEmpty(cellValue) ? "" : cellValue; 
            break;
        case Cell.CELL_TYPE_BOOLEAN:  //布尔类型
            cellValue = String.valueOf(cell.getBooleanCellValue()); 
            break; 
        case Cell.CELL_TYPE_NUMERIC: //数值类型
             if (HSSFDateUtil.isCellDateFormatted(cell)) {  //判断日期类型
                 cellValue =    DateUtil.formatDateByFormat(cell.getDateCellValue(), "yyyy-MM-dd");
             } else {  //否
                 cellValue = new DecimalFormat("#.######").format(cell.getNumericCellValue()); 
             } 
            break;
        default: //其它类型,取空串吧
            cellValue = "";
            break;
        }
        return cellValue;
    }

参考以及引用文章:

https://lilinhui.iteye.com/blog/1163040

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值