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. ...
随机推荐
- sql 整理积累
) AS t1 LEFT JOIN (SELECT * FROM dbo.xcqy2017_News_Classification) AS t2 ON t2.Ncid = t1.Ncid left j ...
- 编程输出杨辉三角的前10行---多维数组的应用---java实现
import java.util.Scanner;public class yanghui{ public static void main(String[] args){ Scanner sc=n ...
- Java面试题阶段汇总
初级面试题 Java面试题-基础篇一 Java面试题-基础篇二 Java面试题-集合框架篇三 Java面试题-基础篇四 Java面试题-基础篇五 Java面试题-javaweb篇六 Java面试题 ...
- php扩展php-redis安装与使用
一.redis的安装 1,安装redis版本 下载页面:https://redis.io/download 安装一个老版本3.2.11:http://download.redis.io/release ...
- Codeforces731C(SummerTrainingDay06-M 并查集)
C. Socks time limit per test:2 seconds memory limit per test:256 megabytes input:standard input outp ...
- 【 js 基础 】【读书笔记】关于this
this 关键字是 Javascript 中很特别的一个关键字,被自动定义在所有函数的作用域中.this提供了一种更优雅的方式隐式“传递”一个对象的引用.今天就来说说 this 的指向问题. this ...
- jQuery的$.getScript方法去加载javaScript文档解析
1.两个文件的代码如下: <script> function Ajax(){ //将9-4.html中的Ajax()函数进行修改 $.getScript('9-8.js',function ...
- hadoop重启后,hdfs目录权限问题
今天重启了下Hadoop集群,使用Eclipse调试hdfs api的时候报错: [WARNING] java.lang.NullPointerException at org.conan.kafka ...
- JavaScript数字转字符串,字符串转数字
//--------------------字符串转数字--------------------------- var s = "234"; //1.纯数字转换 //1 字符串在运 ...
- Android ConstraintLayout详解(from jianshu)
Android ConstraintLayout详解 https://www.jianshu.com/p/a8b49ff64cd3 1. 概述 在本篇文章中,你会学习到有关Constraint ...