From 2150018bac007de88edea37ed4b6561d02e036fc Mon Sep 17 00:00:00 2001 From: Ugo Cei Date: Thu, 24 Jan 2008 14:09:34 +0000 Subject: [PATCH] Implementation of XSSFWorkbook#getSheet(String name). Implementation of XSSFWorkbook#removeSheet. git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@614877 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xssf/usermodel/XSSFWorkbook.java | 11 ++++++--- .../poi/xssf/usermodel/TestXSSFWorkbook.java | 24 +++++++++++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java index a7af4ade3..508006cf6 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java @@ -250,7 +250,12 @@ public class XSSFWorkbook implements Workbook { } public Sheet getSheet(String name) { - // TODO Auto-generated method stub + CTSheet[] sheets = this.workbook.getSheets().getSheetArray(); + for (int i = 0 ; i < sheets.length ; ++i) { + if (name.equals(sheets[i].getName())) { + return this.sheets.get(i); + } + } return null; } @@ -297,8 +302,8 @@ public class XSSFWorkbook implements Workbook { } public void removeSheetAt(int index) { - // TODO Auto-generated method stub - + XSSFSheet sheet = this.sheets.remove(index); + this.workbook.getSheets().removeSheet(index); } public void setBackupFlag(boolean backupValue) { diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java index e739b5449..d1ca3883e 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java @@ -90,4 +90,28 @@ public class TestXSSFWorkbook extends TestCase { assertEquals(3, workbook.getNumberOfSheets()); assertEquals("clonedsheet(1)", workbook.getSheetName(2)); } + + public void testGetSheetByName() { + XSSFWorkbook workbook = new XSSFWorkbook(); + Sheet sheet1 = workbook.createSheet("sheet1"); + Sheet sheet2 = workbook.createSheet("sheet2"); + assertSame(sheet1, workbook.getSheet("sheet1")); + assertSame(sheet2, workbook.getSheet("sheet2")); + assertNull(workbook.getSheet("nosheet")); + } + + public void testRemoveSheetAt() throws Exception { + XSSFWorkbook workbook = new XSSFWorkbook(); + Sheet sheet1 = workbook.createSheet("sheet1"); + Sheet sheet2 = workbook.createSheet("sheet2"); + Sheet sheet3 = workbook.createSheet("sheet3"); + workbook.removeSheetAt(1); + assertEquals(2, workbook.getNumberOfSheets()); + assertEquals("sheet3", workbook.getSheetName(1)); + workbook.removeSheetAt(0); + assertEquals(1, workbook.getNumberOfSheets()); + assertEquals("sheet3", workbook.getSheetName(0)); + workbook.removeSheetAt(0); + assertEquals(0, workbook.getNumberOfSheets()); + } }