Don't try to clone a chart, this makes integration-tests work for a few more documents, also the one added via bug 56557

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1799037 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Dominik Stadler 2017-06-18 05:59:25 +00:00
parent 2b874e59b5
commit eb417057c4
4 changed files with 9 additions and 8 deletions

View File

@ -299,8 +299,7 @@ public class TestAllFiles {
"spreadsheet/poc-xmlbomb.xlsx", // contains xml-entity-expansion "spreadsheet/poc-xmlbomb.xlsx", // contains xml-entity-expansion
"spreadsheet/poc-xmlbomb-empty.xlsx", // contains xml-entity-expansion "spreadsheet/poc-xmlbomb-empty.xlsx", // contains xml-entity-expansion
"spreadsheet/poc-shared-strings.xlsx", // contains shared-string-entity-expansion "spreadsheet/poc-shared-strings.xlsx", // contains shared-string-entity-expansion
"spreadsheet/60255_extra_drawingparts.xlsx", // Non-drawing drawing
// old Excel files, which we only support simple text extraction of // old Excel files, which we only support simple text extraction of
"spreadsheet/testEXCEL_2.xls", "spreadsheet/testEXCEL_2.xls",
"spreadsheet/testEXCEL_3.xls", "spreadsheet/testEXCEL_3.xls",
@ -321,12 +320,8 @@ public class TestAllFiles {
"ddf/47143.dat", "ddf/47143.dat",
// sheet cloning errors // sheet cloning errors
"spreadsheet/47813.xlsx",
"spreadsheet/56450.xls", "spreadsheet/56450.xls",
"spreadsheet/OddStyleRecord.xls", "spreadsheet/OddStyleRecord.xls"
"spreadsheet/WithChartSheet.xlsx",
"spreadsheet/chart_sheet.xlsx",
"spreadsheet/SimpleScatterChart.xlsx"
); );
private static final Set<String> IGNORED = unmodifiableHashSet( private static final Set<String> IGNORED = unmodifiableHashSet(

View File

@ -31,6 +31,7 @@ import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory; import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.util.RecordFormatException; import org.apache.poi.util.RecordFormatException;
import org.apache.poi.xssf.usermodel.XSSFChartSheet;
public abstract class SpreadsheetHandler extends AbstractFileHandler { public abstract class SpreadsheetHandler extends AbstractFileHandler {
public void handleWorkbook(Workbook wb) throws IOException { public void handleWorkbook(Workbook wb) throws IOException {
@ -125,6 +126,11 @@ public abstract class SpreadsheetHandler extends AbstractFileHandler {
}*/ }*/
for (int i=wb.getNumberOfSheets()-1; i>=0; i--) { for (int i=wb.getNumberOfSheets()-1; i>=0; i--) {
if(wb.getSheetAt(i) instanceof XSSFChartSheet) {
// clone for chart-sheets is not supported
continue;
}
try { try {
wb.cloneSheet(i); wb.cloneSheet(i);
} catch (RecordFormatException e) { } catch (RecordFormatException e) {

View File

@ -580,7 +580,7 @@ public final class TestSXSSFWorkbook extends BaseTestXWorkbook {
@Test @Test
public void test56557() throws IOException, InvalidFormatException { public void test56557() throws IOException, InvalidFormatException {
Workbook wb = WorkbookFactory.create(XSSFTestDataSamples.getSampleFile("56557.xlsx")); Workbook wb = WorkbookFactory.create(XSSFTestDataSamples.getSampleFile("56557.xlsx"), null, false);
// Using streaming XSSFWorkbook makes the output file invalid // Using streaming XSSFWorkbook makes the output file invalid
wb = new SXSSFWorkbook(((XSSFWorkbook) wb)); wb = new SXSSFWorkbook(((XSSFWorkbook) wb));

Binary file not shown.