Example usage for org.apache.poi.ss.util CellReference classifyCellReference

List of usage examples for org.apache.poi.ss.util CellReference classifyCellReference

Introduction

In this page you can find the example usage for org.apache.poi.ss.util CellReference classifyCellReference.

Prototype

public static NameType classifyCellReference(String str, SpreadsheetVersion ssVersion) 

Source Link

Document

Classifies an identifier as either a simple (2D) cell reference or a named range name

Usage

From source file:uk.co.spudsoft.birt.emitters.excel.handlers.AbstractHandler.java

License:Open Source License

protected static String prepareName(String name) {
    char c = name.charAt(0);
    boolean requirePreparation = (!(c == '_' || Character.isLetter(c)) || name.indexOf(' ') != -1);
    if (!requirePreparation) {
        for (int i = 1; i < name.length(); ++i) {
            c = name.charAt(i);/*from  w  ww. j  a v a 2 s.co m*/
            if (!(Character.isLetter(c) || Character.isDigit(c) || c == '_')) {
                requirePreparation = true;
                break;
            }
        }
    }

    if (requirePreparation) {
        name = name.trim();
        char chars[] = name.toCharArray();
        for (int i = 0; i < name.length(); ++i) {
            c = chars[i];
            if (!(Character.isLetter(c) || Character.isDigit(c) || c == '_')) {
                chars[i] = '_';
            }
        }
        name = new String(chars);
    }

    NameType refType = CellReference.classifyCellReference(name, SpreadsheetVersion.EXCEL2007);
    if ((NameType.CELL == refType) || (NameType.COLUMN == refType) || (NameType.ROW == refType)) {
        name = "_" + name;
    }

    return name;
}