本文整理汇总了Java中org.apache.poi.ss.util.CellRangeAddress.isInRange方法的典型用法代码示例。如果您正苦于以下问题:Java CellRangeAddress.isInRange方法的具体用法?Java CellRangeAddress.isInRange怎么用?Java CellRangeAddress.isInRange使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.poi.ss.util.CellRangeAddress
的用法示例。
在下文中一共展示了CellRangeAddress.isInRange方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getStringRangeValue
import org.apache.poi.ss.util.CellRangeAddress; //导入方法依赖的package包/类
public String getStringRangeValue(Cell cell) {
int rowIndex = cell.getRowIndex();
int columnIndex = cell.getColumnIndex();
Sheet sheet = cell.getSheet();
int size = sheet.getNumMergedRegions();
for (int i = 0; i < size; i++) {
CellRangeAddress range = sheet.getMergedRegion(i);
if (range.isInRange(rowIndex, columnIndex)) {
Cell firstCell = getCell(sheet, range.getFirstRow(),
range.getFirstColumn()); // 左上のセルを取得
return getStringValue(firstCell);
}
}
return null;
}
示例2: getRangeIfMerged
import org.apache.poi.ss.util.CellRangeAddress; //导入方法依赖的package包/类
private CellRangeAddress getRangeIfMerged(XSSFCell cell, CellRangeAddress[] mergedRanges) {
for (int i = 0; i < mergedRanges.length; i++) {
CellRangeAddress range = mergedRanges[i];
if (range.isInRange(cell.getRowIndex(), cell.getColumnIndex()))
return range;
}
return null;
}
示例3: removeMergedRegion
import org.apache.poi.ss.util.CellRangeAddress; //导入方法依赖的package包/类
@Override
protected void removeMergedRegion(int rowNumber, int columnNumber) {
super.removeMergedRegion(rowNumber, columnNumber);
for (int idx = 0; idx < poiSheet.getNumMergedRegions(); idx++) {
CellRangeAddress cra = poiSheet.getMergedRegion(idx);
if (cra.isInRange(rowNumber, columnNumber)) {
poiSheet.removeMergedRegion(idx);
}
}
}
示例4: validateSheet
import org.apache.poi.ss.util.CellRangeAddress; //导入方法依赖的package包/类
public List<ValidationResult> validateSheet(XSSFSheet sheet) {
List<ValidationResult> results = new LinkedList<ValidationResult>();
List<XSSFDataValidation> dataValidations = sheet.getDataValidations();
for (XSSFDataValidation xssfDataValidation : dataValidations) {
DataValidationConstraint validationConstraint = xssfDataValidation.getValidationConstraint();
CellRangeAddressList regions = xssfDataValidation.getRegions();
CellRangeAddress[] cellRangeAddresses = regions.getCellRangeAddresses();
Validator validator = buildValidator(sheet, validationConstraint);
for (CellRangeAddress cellRangeAddress : cellRangeAddresses) {
int firstRow = Math.max(cellRangeAddress.getFirstRow(), sheet.getFirstRowNum());
int lastRow = Math.min(cellRangeAddress.getLastRow(), sheet.getLastRowNum());
for (int i = firstRow; i <= lastRow; i++) {
XSSFRow row = sheet.getRow(i);
if (row == null || row.getFirstCellNum() < 0) {
continue;
}
int firstColumn = Math.max(cellRangeAddress.getFirstColumn(), row.getFirstCellNum());
int lastColumn = Math.min(cellRangeAddress.getLastColumn(), row.getLastCellNum());
for (int j = firstColumn; j <= lastColumn; j++) {
XSSFCell cell = row.getCell(j);
if (cell == null) {
continue;
}
boolean inRange = cellRangeAddress.isInRange(cell.getRowIndex(), cell.getColumnIndex());
if (inRange) {
ValidationResult result = validator.validate(cell);
if (result != null) {
results.add(result);
}
}
}
}
}
}
return results;
/*
* TODO think about splitting this function into 2 parts: 1.
* getAllValidators 2. validate with all validators
*/
}
示例5: getMergedCellValue
import org.apache.poi.ss.util.CellRangeAddress; //导入方法依赖的package包/类
/**
* 結合されているセルの値の取得。
* <p>通常は左上のセルに値が設定されているが、結合されているときは左上以外のセルの値を取得する。
* <p>左上以外のセルに値が設定されている場合は、CellTypeがCELL_TYPE_BLANKになるため注意が必要。
* @param cell
* @param locale
* @return
*/
private CellFormatResult getMergedCellValue(final Cell cell, final Locale locale) {
final Sheet sheet = cell.getSheet();
final int size = sheet.getNumMergedRegions();
for(int i=0; i < size; i++) {
final CellRangeAddress range = sheet.getMergedRegion(i);
if(!range.isInRange(cell.getRowIndex(), cell.getColumnIndex())) {
continue;
}
// 非BLANKまたはnullでないセルを取得する。
for(int rowIdx=range.getFirstRow(); rowIdx <= range.getLastRow(); rowIdx++) {
final Row row = sheet.getRow(rowIdx);
if(row == null) {
continue;
}
for(int colIdx=range.getFirstColumn(); colIdx <= range.getLastColumn(); colIdx++) {
final Cell valueCell = row.getCell(colIdx);
if(valueCell == null || valueCell.getCellType() == Cell.CELL_TYPE_BLANK) {
continue;
}
return format(valueCell, locale);
}
}
}
return createBlankCellResult();
}
示例6: isInMergedRegion
import org.apache.poi.ss.util.CellRangeAddress; //导入方法依赖的package包/类
private boolean isInMergedRegion( Sheet sheet, Row row, Cell cell) {
// シート内の結合情報の数だけループする
for ( int i = 0; i < sheet.getNumMergedRegions(); i++) {
CellRangeAddress region = sheet.getMergedRegion( i);
if ( region.isInRange( row.getRowNum(), cell.getColumnIndex())) {
return true;
}
}
return false;
}
示例7: setRowBreakMergedRegion
import org.apache.poi.ss.util.CellRangeAddress; //导入方法依赖的package包/类
protected void setRowBreakMergedRegion( Sheet sheet, Row row, Cell cell) {
PoiUtil.setCellValue( cell, null);
// シート内の結合情報の数だけループする
for ( int i = 0; i < sheet.getNumMergedRegions(); i++) {
CellRangeAddress region = sheet.getMergedRegion( i);
if ( region.isInRange( row.getRowNum(), cell.getColumnIndex())) {
// 結合されていれば結合セルの直後に改ページ
sheet.setRowBreak( row.getRowNum() + 1);
return;
}
}
// 結合されていなければその行で改ページ
sheet.setRowBreak( row.getRowNum());
}
示例8: getCellValue
import org.apache.poi.ss.util.CellRangeAddress; //导入方法依赖的package包/类
/**
* 获取单元格值
* @param row 获取的行
* @param column 获取单元格列号
* @return 单元格值
*/
public Object getCellValue(Row row, int column){
int rownum=row.getRowNum();
for(CellRangeAddress cr:ranges.keySet()){
if(cr.isInRange(rownum, column)){
return ranges.get(cr);
}
}
return getCellValue(row.getCell(column));
}
示例9: getCellValue
import org.apache.poi.ss.util.CellRangeAddress; //导入方法依赖的package包/类
/**
* 获取单元格值
*
* @param row
* 获取的行
* @param column
* 获取单元格列号
* @return 单元格值
*/
public Object getCellValue(Row row, int column) {
int rownum = row.getRowNum();
for (CellRangeAddress cr : rangesMap.keySet()) {
if (cr.isInRange(rownum, column)) {
return rangesMap.get(cr);
}
}
return getCellValue(row.getCell(column));
}
示例10: getMergedRegion
import org.apache.poi.ss.util.CellRangeAddress; //导入方法依赖的package包/类
/**
* 指定したセルのアドレスの結合情報を取得する。
* @since 0.5
* @param sheet
* @param rowIdx
* @param colIdx
* @return 結合していない場合nullを返す。
*/
public static CellRangeAddress getMergedRegion(final Sheet sheet, final int rowIdx, final int colIdx) {
ArgUtils.notNull(sheet, "sheet");
final int num = sheet.getNumMergedRegions();
for(int i=0; i < num; i ++) {
final CellRangeAddress range = sheet.getMergedRegion(i);
if(range.isInRange(rowIdx, colIdx)) {
return range;
}
}
return null;
}
示例11: getMergedRegion
import org.apache.poi.ss.util.CellRangeAddress; //导入方法依赖的package包/类
/**
* Récupère les informations de fusion des cellules dans la sheet source
* pour les appliquer à la sheet destination... Récupère toutes les zones
* merged dans la sheet source et regarde pour chacune d'elle si elle se
* trouve dans la current row que nous traitons. Si oui, retourne l'objet
* CellRangeAddress.
*
* @param sheet the sheet containing the data.
* @param rowNum the num of the row to copy.
* @param cellNum the num of the cell to copy.
* @return the CellRangeAddress created.
*/
public static CellRangeAddress getMergedRegion(XSSFSheet sheet, int rowNum, short cellNum) {
for (int i = 0; i < sheet.getNumMergedRegions(); i++) {
CellRangeAddress merged = sheet.getMergedRegion(i);
if (merged.isInRange(rowNum, cellNum)) {
return merged;
}
}
return null;
}