开心一笑
狼崽从出生就吃素。狼爸狼妈绞尽脑汁训练狼崽捕猎。
终于有天狼爸狼妈欣慰地看到儿子狂追兔子。狼崽抓住兔子凶相毕露恶狠狠地说:小子!把胡萝卜交出来!
提出问题
工作中碰到的问题,单元格合并后边框显示不全
如图:
上图的代码如下:
package com.hwy.test;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellRangeAddress;
import java.io.FileOutputStream;
/**
* Created by Ay on 2016/4/16.
*/
public class PoiCellRangeAddress {
public static void main(String[] args) {
//新建excel报表
HSSFWorkbook excel = new HSSFWorkbook();
//添加一个sheet,名字叫"我的POI之旅"
HSSFSheet hssfSheet = excel.createSheet("我的POI之旅");
//单元格范围 参数(int firstRow, int lastRow, int firstCol, int lastCol)
CellRangeAddress cellRangeAddress =new CellRangeAddress(3, 3, 0, 20);
//在sheet里增加合并单元格
hssfSheet.addMergedRegion(cellRangeAddress);
//生成第一行
Row row = hssfSheet.createRow(3);
Cell first = row.createCell(0);
first.setCellValue("合并单元格");
HSSFCellStyle cellStyle = excel.createCellStyle();
cellStyle.setAlignment(CellStyle.ALIGN_CENTER);
//下边框
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
//左边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
//上边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
//右边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
//只设置第一个单元格的边框
first.setCellStyle(cellStyle);
FileOutputStream fout = null;
try{
fout = new FileOutputStream("D:/students.xls");
excel.write(fout);
fout.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
解决问题
解决问题也是比较简单,就是逐个给单元格设置边框就可以了
代码如下:
package com.hwy.test;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellRangeAddress;
import java.io.FileOutputStream;
/**
* Created by Ay on 2016/4/16.
*/
public class PoiCellRangeAddress {
public static void main(String[] args) {
//新建excel报表
HSSFWorkbook excel = new HSSFWorkbook();
//添加一个sheet,名字叫"我的POI之旅"
HSSFSheet hssfSheet = excel.createSheet("我的POI之旅");
//单元格范围 参数(int firstRow, int lastRow, int firstCol, int lastCol)
CellRangeAddress cellRangeAddress =new CellRangeAddress(3, 3, 0, 20);
//在sheet里增加合并单元格
hssfSheet.addMergedRegion(cellRangeAddress);
//生成第一行
Row row = hssfSheet.createRow(3);
Cell cell = null;
HSSFCellStyle cellStyle = null;
//为每个单元格设置边框,问题就解决了
for(int i=0;i<=20;i++){
cell = row.createCell(i);
if(i == 0){
cell.setCellValue("合并单元格");
}
cellStyle = excel.createCellStyle();
cellStyle.setAlignment(CellStyle.ALIGN_CENTER);
//下边框
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
//左边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
//上边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
//右边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
cell.setCellStyle(cellStyle);
}
FileOutputStream fout = null;
try{
fout = new FileOutputStream("D:/students.xls");
excel.write(fout);
fout.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
生成效果图如下:
读书感悟
- 只有梦想要去看星星的,才有可能登陆月球
- 不明白的事千万不要去做,不懂不可怕,不懂装懂才会最糟糕
- 负债,大多数就是由于欲望超过能力而引起的