关于JAVA Excel POI较为不常见的操作详解

最近工作用到了很多关于Excel的各种操作,样式效果,字体行高,公式等功能,在网上也很难就找到,今天分享一下给大家,希望大家用到的时候能及时解决。

 

1.创建Excel模型
  HSSFWorkbook workbook=new HSSFWorkbook(); 
2.创建sheet 
  HSSFSheet sheet=workbook.createSheet("sheet名称");
3.创建行 ,这个只能创建行的某列的单元格,没有办法创建某列。
  //index是想要创建的行的下标,新建的sheet一般都要创建,如果已经创建过了,就不可以创建第二次,但可以用getRow方法获 取。

 int index = 0;  
  HSSFRow nameRow = sheet.createRow();
4.创建单元格 同上
HSSFCell excelCell = nameRow.createCell(0);
5.单元格赋值
  nameCell.setCellValue("单元格值");
6. 设置样式
  6.1 首先创建样式
        HSSFCellStyle cellStyle = workbook.createCellStyle();
  6.2 设置字体样式
      HSSFFont font = workbook.createFont(); //创建
      font.setBold(true);     //是否加粗
      font.setFontHeightInPoints((short)22); //字号
      font.setColor(HSSFColor.WHITE.index); //颜色
      cellStyle.setFont(font);    //最后要将颜色对象赋值给样式中,很重要。
  6.3 设置背景颜色
      cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); 
      cellStyle.setFillForegroundColor(HSSFColor.BLACK.index);     //颜色下标
  6.4 文体位置
        cellStyle.setAlignment(HorizontalAlignment.CENTER);// 左右居中
      cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 上下居中       
  6.5 设置边框样式
        cellStyle.setBorderTop(BorderStyle.THIN);
        cellStyle.setBorderBottom(BorderStyle.THIN);
        cellStyle.setBorderLeft(BorderStyle.THIN);
        cellStyle.setBorderRight(BorderStyle.THIN);
  6.6 设置边框颜色
        cellStyle.setTopBorderColor(HSSFColor.BLACK.index);
        cellStyle.setBottomBorderColor(HSSFColor.BLACK.index);
        cellStyle.setLeftBorderColor(HSSFColor.BLACK.index);
        cellStyle.setRightBorderColor(HSSFColor.BLACK.index);
  6.7  设置行高 列宽
      HSSFRow  nowRow= sheet.createRow(rowIndex);
      nowRow.setHeight((short) 510); //这个数值自己要去和实际衡量,因为java和Excel的换算值目前不太明确。
      sheet.setColumnWidth(startIndex,dataMap.get(key)+3*256);

      //用sheet的方法setColumnWidth 设置某列宽度,参数(列的下标,宽度),我这边在设置宽度要乘以256才能与样本宽度符        合。各位可以因实际情况而定
  6.8 差点忘了,记得最后将style样式对象通过各类的setCellStyle方法赋给需要用到此样式的模块。单元格,列行都可以通过setCellStyle方法加入样式。
  
 7.合并单元格
    //注意点就是,当合并以后,下标将按照从左到右,从上到下,取最前边的值。意思就是 合并 4,5,4,5
     那么合并后的下标就是 4,4  整体下标会迁移,因为合并就等于扩大了某单元格,删除了其他合并的单元格。
     sheet.addMergedRegion(new CellRangeAddress(起始行下标,结束行下标,起始列下标,结束列下标));
 
 8.如何设置数值类型单元格,就是可以进行数值运算的那种哦。
     cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("General")); //设置格式为常规。他会自动识别是否为数值
 9.如何设置单元格公式,excelCell为单元格对象。
   excelCell.setCellType(XSSFCell.CELL_TYPE_FORMULA);        
   excelCell.setCellFormula("SUM(O1,X2)");
    //这里我是求和公式。大家可以字符串方式进行设置,不要太死板,如果坐标动态也可以动态赋值,如果你要是说为啥没有其他公式,那我可以告诉你,你创建一个Excel,你所有的操作上面都有,你给某单元格设置一下公式,设置完上边公式栏里会有公式,你copy过来就可以了,只能帮到这了。希望大家在做的时候不要像我一样东拼西凑才能找全Excel的操作难点。
    
如果有问题,或者想找志同道合之人,可以来 企鹅群:583055236 ,大家一起探讨。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值