View | Details | Raw Unified | Return to bug 63402
Collapse All | Expand All

(-)src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java (+10 lines)
Lines 4181-4186 Link Here
4181
            removeRelation(getRelationById(toDelete.getKey()), true);
4181
            removeRelation(getRelationById(toDelete.getKey()), true);
4182
            tables.remove(toDelete.getKey());
4182
            tables.remove(toDelete.getKey());
4183
            toDelete.getValue().onTableDelete();
4183
            toDelete.getValue().onTableDelete();
4184
4185
            CTTableParts tblParts = worksheet.getTableParts();
4186
            final CTTablePart[] tablePartArray = tblParts.getTablePartArray();
4187
            for(int i = 0; i < tablePartArray.length; i++) {
4188
                if(tablePartArray[i].getId().equals(toDelete.getKey())) {
4189
                    tblParts.removeTablePart(i);
4190
                    //worksheet.setTableParts(tblParts);
4191
                    break;
4192
                }
4193
            }
4184
        }
4194
        }
4185
    }
4195
    }
4186
4196
(-)src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java (+30 lines)
Lines 34-39 Link Here
34
import java.io.FileInputStream;
34
import java.io.FileInputStream;
35
import java.io.FileOutputStream;
35
import java.io.FileOutputStream;
36
import java.io.IOException;
36
import java.io.IOException;
37
import java.io.OutputStream;
37
import java.util.ArrayList;
38
import java.util.ArrayList;
38
import java.util.List;
39
import java.util.List;
39
import java.util.Locale;
40
import java.util.Locale;
Lines 622-625 Link Here
622
        final AreaReference area = new AreaReference(upperLeft, lowerRight, SpreadsheetVersion.EXCEL2007);
623
        final AreaReference area = new AreaReference(upperLeft, lowerRight, SpreadsheetVersion.EXCEL2007);
623
        return sheet.createTable(area);
624
        return sheet.createTable(area);
624
    }
625
    }
626
627
    /**
628
     * Delete table2, and create a named range in sheet0; it should automatically be assigned the name "Table4"
629
     */
630
    @Test
631
    public void testRemoveTable() throws IOException {
632
        final File resultDir=new File("build/custom-reports-test");
633
634
        XSSFWorkbook workbook = new XSSFWorkbook();
635
        XSSFSheet sheet0 = workbook.createSheet();
636
637
        final String procName="testTable";
638
        String fileName=procName+".xlsx";
639
640
        //  Create the table
641
        final XSSFTable table1=addTable(sheet0,3,0,2,4);
642
        final XSSFTable table2=addTable(sheet0,7,1,3,5);
643
        sheet0.removeTable(table1);
644
645
        final File file=new File(resultDir,fileName);
646
        try (OutputStream fileOut = new FileOutputStream(file)) {
647
            workbook.write(fileOut);
648
            System.out.println(String.format(Locale.ROOT, "%s: test file written to %s",procName,file.getAbsolutePath()));
649
        } catch (Exception e) {
650
            System.err.println(e.getMessage());
651
        } finally {
652
            workbook.close();
653
        }
654
    }
625
}
655
}

Return to bug 63402