Java POI单元格使用心得
1:
/**
* Created by liuguangxin on 2018/5/16.
* <p>
* MergeRegion:表示excel中cell的信息,startRow与endRow表示当前cell的起始与结束行编号(base 1),
* startCol与endCol同理表示列的起始与结束列编号(base 1)<p/>
*/
public class MergeRegion { @Override
public String toString() {
return "[ " +
"merged=" + merged +
", startRow=" + startRow +
", endRow=" + endRow +
", startCol=" + startCol +
", endCol=" + endCol +
"] ";
} @Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false; MergeRegion result = (MergeRegion) o; if (merged != result.merged) return false;
if (startRow != result.startRow) return false;
if (endRow != result.endRow) return false;
if (startCol != result.startCol) return false;
return endCol == result.endCol;
} @Override
public int hashCode() {
int result = (merged ? 1 : 0);
result = 31 * result + startRow;
result = 31 * result + endRow;
result = 31 * result + startCol;
result = 31 * result + endCol;
return result;
} public boolean merged;
public int startRow;
public int endRow;
public int startCol;
public int endCol; public MergeRegion(boolean merged, int startRow, int endRow
, int startCol, int endCol) {
this.merged = merged;
this.startRow = startRow;
this.endRow = endRow;
this.startCol = startCol;
this.endCol = endCol;
}
}
获取单元格的之,包含是否是合并的情况:
/**
* @param sheet
* @param rowIndex
* @param columnIndex
* @return 返回指定cell对应的值,否则返回null
*/
public static String getCellValue(Sheet sheet, int rowIndex, int columnIndex) { MergeRegion region = isMergedRegion(sheet, rowIndex, columnIndex);
if (region.merged) {
// |——————————————————————
// | | | |
// |——————————————————————
// | | | |
// |——————————————————————
// | | | |
// |——————————————————————
// 对于如上3*3的表格合并之后,只有获取相对3*3表格内 (0,0)的位置才会获取到数据,
// 因此对于如果获取的是合并cell的值的话需要转换rowIndex,columnIndex为相对表格内的(0,0)处
rowIndex = region.startRow - 1;
columnIndex = region.startCol - 1;
}
Row row = sheet.getRow(rowIndex);
Cell cell;
if (Objects.nonNull(row) && (cell = row.getCell(columnIndex)) != null) {
cell.setCellType(CellType.STRING);
return deleteEnterChar(cell.getStringCellValue());
} return null;
}
Java POI单元格使用心得的更多相关文章
- POI单元格添加公式以及读取公式结果的值
POI提供了为单元格添加条件样式的方法,但是我并没有找到获取单元格改变后样式的方法,获取到样式依旧是没有改变之前的. 比如为单元格添加条件样式用于监听单元格值是否被修改,如果单元格值被修改那么字体颜色 ...
- POI 单元格
OI 单元格合并中的CellRangeAddress 参数: CellRangeAddress(int, int, int, int) 参数:起始行号,终止行号, 起始列号,终止列号 sheet.ad ...
- java合并单元格同时导出excel
POI进行跨行需要用到对象HSSFSheet对象,现在就当我们程序已经定义了一个HSSFSheet对象sheet. 跨第1行第1个到第2个单元格的操作为 sheet.addMergedRegion(n ...
- 1.0 poi单元格合合并及写入
最近项目中用到poi生成Excel时,用到了单元格合并,于是参考了http://www.anyrt.com/blog/list/poiexcel.html写的文章,但是其中有些地方不是很清楚,于是自己 ...
- POI 单元格类型CellType
1.单元格类型 单元格的内容决定了单元格的类型,POI中定义的7种单元格类型: 2.示例 cell_0.setCellType(CellType.STRING);//字符串 日期数据对应的单元格类型是 ...
- 【转】NPOI 单元格级别应用
NPOI 单元格级别应用A HSSFWorkbook hssfworkbook = new HSSFWorkbook();//初始化一个新的HSSFWorkbook实例 //#region 1.创建一 ...
- 【POI xls Java map】使用POI处理xls 抽取出异常信息 --java1.8Group by ---map迭代 -- 设置单元格高度
代码处理逻辑: 代码流程: 1.首先需要创建一个实体 用来存储 相关信息 package com.sxd.test.unusualName; public class NameEntity { pri ...
- java poi操作excel 添加 锁定单元格保护
Excel的book保护是很常用的,主要是不想让别人修改Excel的时候用.这样能够避免恶意随便修改数据,提高数据的可信度. 下面介绍JAVA POI来实现设置book保护: 使用HSSFSheet类 ...
- POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解
http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280. ...
随机推荐
- Dijkstra和Prim算法的区别
Dijkstra和Prim算法的区别 1.先说说prim算法的思想: 众所周知,prim算法是一个最小生成树算法,它运用的是贪心原理(在这里不再证明),设置两个点集合,一个集合为要求的生成树的点集合A ...
- ActivityManagerService原理&源码
https://www.kancloud.cn/alex_wsc/android-deep2/413386 http://wiki.jikexueyuan.com/project/deep-andro ...
- Spring、Springmvc整合web的web.xml配置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...
- python正则表达式3-模式匹配
re.S,使 '.' 匹配换行在内的所有字符 >>> pattern=r'ghostwu.com' >>> import re >>> re.f ...
- 卸载阿里云自带svn
- NOI.AC NOIP2018 全国热身赛 第四场
心路历程 预计得分:\(0 + 100 +100\) 实际得分:\(10 + 100 + 0\) 神TM T3模数为啥是\(1e9 + 9\)啊啊啊啊,而且我也确实是眼瞎...真是血的教训啊.. T2 ...
- JS中冒泡排序,选择排序,快速排序
var arr = [1,4,2,9,7,6,5,4,7,5]; // 冒泡排序(通俗的说就是j 和 j+1打,谁赢了谁去后面) for(var i = 1;i<ar ...
- x64系统WSC注册方法
@echo off title 注册WSC脚本部件 echo. ***************************************** echo. 支持x64系统(请以管理员身份运行) e ...
- Postman Postman测试接口之JSON结构化数据提交
Postman测试接口之JSON结构化数据提交 by:授客 QQ:1033553122 本文主要是针对结构比较复杂一点的JSON协议数据的提交做个简单说明 举例: 用户下订单接口 接口方向 客户端 ...
- AOP编程报错Xlint:invalidAbsoluteTypeName
@Component@Aspectpublic class DingdingAspect { private Logger logger = LoggerFactory.getLogger(this. ...