是的,Java支持对toString方法进行重写,我们也确实可以做到中括号去除,但是这样做的后果是,会造成我们原本被引用的复选框单元格中的勾丢失,因此为了能够兼容其他的设计,我们目前只能带有中括号的值
对于您的第二个问题,我想您可以通过以下代码来实现
- public static void main(String[] args) {
- IWorksheet worksheet = workbook.getWorksheets().get(1);
- IRange usedRange = worksheet.getUsedRange();
- int rowCount = usedRange.getRowCount();
- int columnCount = usedRange.getColumnCount();
- for (int i = 0; i < rowCount; i++) {
- for (int j = 0; j < columnCount; j++) {
- if (worksheet.getRange(i, j).getFormula() != "") {
- for (IRange item : worksheet.getRange(i, j).getPrecedents()) {
- if (item.getCellType() != null && item.getCellType() instanceof CheckBoxListCellType) {
- System.out.println(convertToString(worksheet.getRange(i, j).getValue()));
- }
- }
- }
- }
- }
- }
- private static String convertToString(Object array) {
- if (array == null) {
- return "";
- }
- StringBuilder sb = new StringBuilder();
- if (array.getClass().isArray()) {
- int length = Array.getLength(array);
- for (int i = 0; i < length; i++) {
- Object element = Array.get(array, i);
- sb.append(convertToString(element));
- if (i < length - 1) {
- sb.append(",");
- }
- }
- } else {
- sb.append(array);
- }
- return sb.toString();
- }
复制代码
|