最近由于项目需要用到了POI来生成Excel表格,遇到单元格合并以后怎么加边框,老是解决不了,特意上来请教一下
在网上找了一堆,都不行。
自己写了一个笨方法,可以实现列合并加边框,但是行合并就不行了,方法如下:
/**
* 合并单元格加边框 水平
* @param sheet
* @param region
* @param cs
*/
public static void setCellBorder(int start, int end, HSSFRow row, HSSFCellStyle style) {
for(int i=start;i<=end;i++){
HSSFCell cell = row.createCell(i);
cell.setCellValue("");
cell.setCellStyle(style);
}
}
参数说明:start和并的第二列,end为合并的最后一列,row就为当前行,style样式(里面有设置边框)
例如从0-10列合并: ExcelUtil.setCellBorder(2,10,row,style); 这样可以设置
关于合并行设置也写了一个,但是不行,方法如下:
/**
* 合并单元格加边框 垂直
* @param sheet
* @param region
* @param cs
*/
public static void setCellBorder(int start, int end, int col, HSSFSheet sheet, HSSFCellStyle style) {
for(int i=start;i<=end;i++){
HSSFRow row = ExcelUtil.createRow(sheet, start, (short)0);
HSSFCell cell = row.createCell(col);
cell.setCellValue("");
cell.setCellStyle(style);
}
}
参数说明:start和并的第二行,end为合并的最后一行,col为哪一列,sheet就是当前表格对象,style样式(里面有设置边框)
下面是调用代码:
//第二行 制表时间
HSSFRow rowCreateTime = ExcelUtil.createRow(sheet, 1, (short)400);
String time = new SimpleDateFormat("yyyy年MM月dd日").format(new Date());
ExcelUtil.createCell(sheet, rowCreateTime, 0, styleTime,
new Region(1,(short)0,1,(short)27), "制表时间:"+time,null);
//合并后单元格设置边框
ExcelUtil.setCellBorder(1, 27, rowCreateTime, styleTime);
//第三行 目录
HSSFRow rowMenu = ExcelUtil.createRow(sheet, 2, (short)450);
HSSFRow rowMenu1 = ExcelUtil.createRow(sheet, 3, (short)450);
//单位
ExcelUtil.createCell(sheet, rowMenu, 0, style,
new Region(2,(short)0,3,(short)0),"单位",4000);
ExcelUtil.setCellBorder(3, 3, 0, sheet, style);
//设备型号
ExcelUtil.createCell(sheet, rowMenu, 1, style,
new Region(2,(short)1,3,(short)1),"设备型号",2500);
ExcelUtil.setCellBorder(3, 3, 1, sheet, style);
//全年1-12月维修情况
ExcelUtil.createCell(sheet, rowMenu, 2, style,
new Region(2,(short)2,2,(short)13),"全年1-12月维修情况",null);
//合计
ExcelUtil.createCell(sheet, rowMenu, 14, style,
new Region(2,(short)14,3,(short)14),"合计",1200);
ExcelUtil.setCellBorder(3, 3, 14, sheet, style);
//全年1-12月维护情况
ExcelUtil.createCell(sheet, rowMenu, 15, style,
new Region(2,(short)15,2,(short)26),"全年1-12月维修情况",null);
//合计
ExcelUtil.createCell(sheet, rowMenu, 27, style,
new Region(2,(short)27,3,(short)27),"合计",1200);
ExcelUtil.setCellBorder(3, 3, 27, sheet, style);
请高手指教一下,有什么好的方法么?
- 大小: 111.7 KB
分享到:
相关推荐
POI操作Excel 合并单元格 边框问题解决方法,这个方法是我亲自测试,并运用于项目中的,可以放心使用,还一并写出了很多注释,其中有写poi的bug的解决方法
java excel poi合并单元格
关于java EXCEL poi 合并后无法显示或无法设置边框问题 【本人亲测】 excel poi 新手! 坑了1.5天!
java POI导出Excel文件多表头文件
poi获取合并单元格,Java 对excel 文档处理。
poi获取exccel有合并单元格的数据,存入List
poi读取合并单元格帮助类
POI 合并单元格 及 注意事项
poi生成excel及合并单元格示例,详见文章http://blog.csdn.net/geloin/article/details/17219885
本篇文章小编为大家介绍,用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法。需要的朋友参考下
poi导入/导出Excel表格,合并单元格的读取和设置
利用poi进行excel相同内容合并单元格,只摘要了传入部分功能,请关注addMergedRegion方法
java poi 填充word(合并单元格,添加图片,设置字号)(csdn)————程序
POI导出Excel工具类,自动设置标题 列名 文件名,可插入图片,合并单元格
easyuiPoi 通过模板导出Excel、支持纵向合并单元格(合并重复内容)。压缩包包含公共工具类、示例模板、调用截图。
【JAVA】easypoi根据Excel模板导出 循环遍历合并单元格处理
POI excel单元格顔色设定
Java操纵POI解析Excel表,根据表头将内容储存。通过实体类set、get方便其它方法引用
10、添加区域,合并单元格 11、保存Excel文件 12、根据单元格不同属性返回字符串数值 13、常用单元格边框格式 14、设置字体和内容位置 15、插入图片 16、调整工作表位置 17、设置打印区域 18、标注脚注 19...
excel poi工具类 导入 导出 合并单元格 计算公式