public void merge(int startrow,int endstartrow,int startColumn,int endColumn){
sht.addMergedRegion(new CellRangeAddress(startrow, endstartrow, startColumn, endColumn));
}

合并单元格时候  合并后的单元格部分边框会看不见。从而进行处理。

下面是处理样式的 方法。 单元格设置边框

public void setStyle(int size, int color, boolean isBold, boolean isItalic, int backgroudColor, int align, int valign)
{
style = wb.createCellStyle();
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBottomBorderColor(HSSFColor.BLACK.index);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setLeftBorderColor(HSSFColor.BLACK.index);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setRightBorderColor(HSSFColor.BLACK.index);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setTopBorderColor(HSSFColor.BLACK.index);
HSSFFont font = wb.createFont();
font.setColor((short)color);
font.setFontHeightInPoints((short)size);
if (isBold)
{
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
}
else
{
font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
}
font.setItalic(isItalic);
style.setFont(font);
style.setFillForegroundColor((short)backgroudColor);
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style.setAlignment((short)align);
style.setVerticalAlignment((short)valign);
}

然而并无卵用,一直出现 单元格无边框。几个单元格都出现相同效果。总结是合并单元格的 最后一个单元格 的边框总是有一边不显示。

最后解决办法是挺简单的,只要给最后那个单元格里面放一个空字符串。问题就解决了。

ew.putData(1, 1, 1, "");

ew是放数据的。

public void putData(int shtidx, int rowidx, int colidx, Object data)
{
if (rowidx > bounder)
{
try
{
wb.getSheetAt(shtidx);
}
catch (IndexOutOfBoundsException e)
{
wb.createSheet();
wb.setSheetName(shtidx, "Sheet " + (shtidx + 1));
}
sht = wb.getSheetAt(shtidx);
}
if (sht.getRow(rowidx) == null)
{
sht.createRow(rowidx);
}
row = sht.getRow(rowidx); if (row.getCell(colidx) == null)
{
row.createCell(colidx);
}
cell = row.getCell(colidx); if (data instanceof Double)
{
Double d = (Double)data;
cell.setCellValue(d);
}
else if (data instanceof Integer)
{
Integer i = (Integer)data;
cell.setCellValue(i);
}
else if (data instanceof Date)
{
Date d = (Date)data;
cell.setCellValue(d);
}
else if (data instanceof String)
{
String s = (String)data;
cell.setCellValue(s);
}
else
{
String s;
if (data == null)
{
data = new String("");
}
s = data.toString();
cell.setCellValue(s);
} cell.setCellStyle(style);
}

poi 合并单元格 无边框问题的更多相关文章

  1. java poi 合并单元格后边框问题

    在项目中用poi合并单元格,但发现边框会有不显示的问题. 在网上搜集了答案,来记录一下. 解决方法: 将每个没用到的单元格都设空值. 例如: HSSFCell cell = row.createCel ...

  2. apache poi合并单元格设置边框

    HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); //创建一个样式 HSSFCellStyle sty ...

  3. poi合并单元格同时导出excel

    poi合并单元格同时导出excel POI进行跨行需要用到对象HSSFSheet对象,现在就当我们程序已经定义了一个HSSFSheet对象sheet. 跨第1行第1个到第2个单元格的操作为 sheet ...

  4. java poi 合并单元格

    java poi 合并单元格 2017年03月29日 16:39:01 翠烟你懊恼 阅读数:26561   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.n ...

  5. poi 合并单元格、设置边框

    HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); //创建一个样式 HSSFCellStyle sty ...

  6. python3-xlwt-Excel设置(字体大小、颜色、对齐方式、换行、合并单元格、边框、背景、下划线、斜体、加粗)

    搬运出处: https://blog.csdn.net/weixin_44065501/article/details/88899257 # coding:utf-8 import patterns ...

  7. Apache POI 合并单元格

    合并单元格所使用的方法: sheet.addMergedRegion( CellRangeAddress  cellRangeAddress  );   CellRangeAddress  对象的构造 ...

  8. Apache POI 合并单元格--简单解释版带Demo

    合并单元格所使用的方法: sheet.addMergedRegion( CellRangeAddress  cellRangeAddress  );   CellRangeAddress  对象的构造 ...

  9. java poi导出Excel合并单元格并设置边框

    import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; i ...

随机推荐

  1. bzoj 1854: [Scoi2010]游戏

    #include<cstdio> #include<iostream> #include<cstring> #define M 2000008 using name ...

  2. https://github.com/oneuijs/You-Dont-Need-jQuery

    https://github.com/oneuijs/You-Dont-Need-jQuery

  3. How to setup SVN?

    2014-01-08 11:43:50 如何简单设置SVN(前提是SVN已经安装) 1. 创建一个目录: mkdir -p ~/svn/2.1.J.1.1 2. 进入新创建的目录: cd svn/2. ...

  4. 采用EntLib5.0(Unity+Interception+Caching)实现项目中可用的Caching机制

    看了园子里很多介绍Caching的文章,多数都只介绍基本机制,对于Cache更新和依赖部分,更是只简单的实现ICacheItemRefreshAction接口,这在实际项目中是远远不够的.实际项目中, ...

  5. JavaScript 数组方法和属性

    一. 数组对象的操作方法 1. 数组的创建 2.prototype属性 返回对象原型的引用,prototype属性时object共有的. objectName.prototype,其中objectNa ...

  6. 关于java中super()和this()

    在java中this表示当前类中的对象,super则表示父类中的对象.比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当然,this的另一个用途是调用当前对象的另一个 ...

  7. 经典线程同步 信号量Semaphore

    阅读本篇之前推荐阅读以下姊妹篇: <秒杀多线程第四篇一个经典的多线程同步问题> <秒杀多线程第五篇经典线程同步关键段CS> <秒杀多线程第六篇经典线程同步事件Event& ...

  8. redis 详解

    什么是redis? redis 是一个基于内存的高性能key-value数据库. (有空再补充,有理解错误或不足欢迎指正) Reids的特点 Redis本质上是一个Key-Value类型的内存数据库, ...

  9. C# Sandboxer

    public static string IsolateCallV1(PageContentHandler pHandler) { string name = Guid.NewGuid().ToStr ...

  10. Unknown type name “CGFloat

    一.编绎显示Unknown type name “CGFloat”  错误解决方法 将Compile Sources As 改为 Objective-C++ 二.如果是extern const引起的. ...