package org.apache.poi.xssf.usermodel;
-import java.util.HashMap;
import java.util.List;
-import java.util.Locale;
import java.util.Map;
+import org.apache.commons.collections4.map.CaseInsensitiveMap;
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.EvaluationName;
import org.apache.poi.ss.formula.EvaluationWorkbook;
return _uBook.createName();
}
- private static String caseInsensitive(String s) {
- return s.toUpperCase(Locale.ROOT);
- }
-
/*
* TODO: data tables are stored at the workbook level in XSSF, but are bound to a single sheet.
* The current code structure has them hanging off XSSFSheet, but formulas reference them
if ( _tableCache != null ) {
return _tableCache;
}
- // FIXME: use org.apache.commons.collections.map.CaseInsensitiveMap
- _tableCache = new HashMap<>();
+ _tableCache = new CaseInsensitiveMap<>();
for (Sheet sheet : _uBook) {
for (XSSFTable tbl : ((XSSFSheet)sheet).getTables()) {
- String lname = caseInsensitive(tbl.getName());
- _tableCache.put(lname, tbl);
+ _tableCache.put(tbl.getName(), tbl);
}
}
return _tableCache;
@Override
public XSSFTable getTable(String name) {
if (name == null) return null;
- String lname = caseInsensitive(name);
- return getTableCache().get(lname);
+ return getTableCache().get(name);
}
@Override
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import java.util.HashMap;
import java.util.List;
-import java.util.Locale;
import org.apache.commons.collections4.map.CaseInsensitiveMap;
import org.apache.poi.ooxml.POIXMLDocumentPart;
commonXPath = null;
}
- private static String caseInsensitive(String s) {
- return s.toUpperCase(Locale.ROOT);
- }
-
/**
* Gets the relative column index of a column in this table having the header name {@code column}.
* The column index is relative to the left-most column in the table, 0-indexed.
int i = 0;
for (XSSFTableColumn column : getColumns()) {
String columnName = column.getName();
- columnMap.put(caseInsensitive(columnName), i);
+ columnMap.put(columnName, i);
i++;
}
}