最近工作用到了很多关于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 ,大家一起探讨。
1240

被折叠的 条评论
为什么被折叠?



