Bug 57373: Fix get/setFirstVisibleTab() for XSSFWorkbook
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1647322 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1db7f3bd3b
commit
83f5683c50
@ -1192,7 +1192,7 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook, Iterable<X
|
||||
public int getFirstVisibleTab() {
|
||||
CTBookViews bookViews = workbook.getBookViews();
|
||||
CTBookView bookView = bookViews.getWorkbookViewArray(0);
|
||||
return (short) bookView.getActiveTab();
|
||||
return (short) bookView.getFirstSheet();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1204,7 +1204,7 @@ public class XSSFWorkbook extends POIXMLDocument implements Workbook, Iterable<X
|
||||
public void setFirstVisibleTab(int index) {
|
||||
CTBookViews bookViews = workbook.getBookViews();
|
||||
CTBookView bookView= bookViews.getWorkbookViewArray(0);
|
||||
bookView.setActiveTab(index);
|
||||
bookView.setFirstSheet(index);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -166,8 +166,9 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getCellStyleAt(){
|
||||
public void getCellStyleAt() throws IOException{
|
||||
XSSFWorkbook workbook = new XSSFWorkbook();
|
||||
try {
|
||||
short i = 0;
|
||||
//get default style
|
||||
CellStyle cellStyleAt = workbook.getCellStyleAt(i);
|
||||
@ -182,11 +183,15 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
||||
int x = styleSource.putStyle(customStyle);
|
||||
cellStyleAt = workbook.getCellStyleAt((short)x);
|
||||
assertNotNull(cellStyleAt);
|
||||
} finally {
|
||||
workbook.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getFontAt(){
|
||||
public void getFontAt() throws IOException{
|
||||
XSSFWorkbook workbook = new XSSFWorkbook();
|
||||
try {
|
||||
StylesTable styleSource = workbook.getStylesSource();
|
||||
short i = 0;
|
||||
//get default font
|
||||
@ -199,14 +204,21 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
||||
int x = styleSource.putFont(customFont);
|
||||
fontAt = workbook.getFontAt((short)x);
|
||||
assertNotNull(fontAt);
|
||||
} finally {
|
||||
workbook.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getNumCellStyles(){
|
||||
public void getNumCellStyles() throws IOException{
|
||||
XSSFWorkbook workbook = new XSSFWorkbook();
|
||||
try {
|
||||
short i = workbook.getNumCellStyles();
|
||||
//get default cellStyles
|
||||
assertEquals(1, i);
|
||||
} finally {
|
||||
workbook.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -456,8 +468,9 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void recalcId() {
|
||||
public void recalcId() throws IOException {
|
||||
XSSFWorkbook wb = new XSSFWorkbook();
|
||||
try {
|
||||
assertFalse(wb.getForceFormulaRecalculation());
|
||||
CTWorkbook ctWorkbook = wb.getCTWorkbook();
|
||||
assertFalse(ctWorkbook.isSetCalcPr());
|
||||
@ -479,7 +492,9 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
||||
calcPr.setCalcMode(STCalcMode.MANUAL);
|
||||
wb.setForceFormulaRecalculation(true);
|
||||
assertEquals(STCalcMode.AUTO, calcPr.getCalcMode());
|
||||
|
||||
} finally {
|
||||
wb.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -488,14 +503,18 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setTabColor() {
|
||||
public void setTabColor() throws IOException {
|
||||
XSSFWorkbook wb = new XSSFWorkbook();
|
||||
try {
|
||||
XSSFSheet sh = wb.createSheet();
|
||||
assertTrue(sh.getCTWorksheet().getSheetPr() == null || !sh.getCTWorksheet().getSheetPr().isSetTabColor());
|
||||
sh.setTabColor(IndexedColors.RED.index);
|
||||
assertTrue(sh.getCTWorksheet().getSheetPr().isSetTabColor());
|
||||
assertEquals(IndexedColors.RED.index,
|
||||
sh.getCTWorksheet().getSheetPr().getTabColor().getIndexed());
|
||||
} finally {
|
||||
wb.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -655,6 +674,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
||||
public void bug51158a() throws IOException {
|
||||
// create a workbook
|
||||
final XSSFWorkbook workbook = new XSSFWorkbook();
|
||||
try {
|
||||
workbook.createSheet("Test Sheet");
|
||||
|
||||
XSSFSheet sheetBack = workbook.getSheetAt(0);
|
||||
@ -673,6 +693,9 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
||||
System.out.println(str);
|
||||
|
||||
assertEquals(1, countMatches(str, "<worksheet"));
|
||||
} finally {
|
||||
workbook.close();
|
||||
}
|
||||
}
|
||||
|
||||
private static final int INDEX_NOT_FOUND = -1;
|
||||
@ -698,18 +721,23 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
||||
return cs.toString().indexOf(searchChar.toString(), start);
|
||||
}
|
||||
|
||||
public void testAddPivotCache() {
|
||||
@Test
|
||||
public void testAddPivotCache() throws IOException {
|
||||
XSSFWorkbook wb = new XSSFWorkbook();
|
||||
try {
|
||||
CTWorkbook ctWb = wb.getCTWorkbook();
|
||||
CTPivotCache pivotCache = wb.addPivotCache("0");
|
||||
//Ensures that pivotCaches is initiated
|
||||
assertTrue(ctWb.isSetPivotCaches());
|
||||
assertSame(pivotCache, ctWb.getPivotCaches().getPivotCacheArray(0));
|
||||
assertEquals("0", pivotCache.getId());
|
||||
} finally {
|
||||
wb.close();
|
||||
}
|
||||
}
|
||||
|
||||
public void setPivotData(XSSFWorkbook wb){
|
||||
XSSFSheet sheet = (XSSFSheet) wb.createSheet();
|
||||
XSSFSheet sheet = wb.createSheet();
|
||||
|
||||
Row row1 = sheet.createRow(0);
|
||||
// Create a cell and put a value in it.
|
||||
@ -740,6 +768,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
||||
sheet.createPivotTable(source, new CellReference("H5"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoadWorkbookWithPivotTable() throws Exception {
|
||||
String fileName = "ooxml-pivottable.xlsx";
|
||||
|
||||
@ -754,6 +783,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
||||
assertTrue(wb2.getPivotTables().size() == 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddPivotTableToWorkbookWithLoadedPivotTable() throws Exception {
|
||||
String fileName = "ooxml-pivottable.xlsx";
|
||||
|
||||
@ -768,4 +798,39 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
|
||||
setPivotData(wb2);
|
||||
assertTrue(wb2.getPivotTables().size() == 2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetFirstVisibleTab_57373() throws IOException {
|
||||
Workbook wb = new XSSFWorkbook();
|
||||
|
||||
try {
|
||||
/*Sheet sheet1 =*/ wb.createSheet();
|
||||
Sheet sheet2 = wb.createSheet();
|
||||
int idx2 = wb.getSheetIndex(sheet2);
|
||||
Sheet sheet3 = wb.createSheet();
|
||||
int idx3 = wb.getSheetIndex(sheet3);
|
||||
|
||||
// add many sheets so "first visible" is relevant
|
||||
for(int i = 0; i < 30;i++) {
|
||||
wb.createSheet();
|
||||
}
|
||||
|
||||
wb.setFirstVisibleTab(idx2);
|
||||
wb.setActiveSheet(idx3);
|
||||
|
||||
//wb.write(new FileOutputStream(new File("C:\\temp\\test.xlsx")));
|
||||
|
||||
assertEquals(idx2, wb.getFirstVisibleTab());
|
||||
assertEquals(idx3, wb.getActiveSheetIndex());
|
||||
|
||||
Workbook wbBack = XSSFTestDataSamples.writeOutAndReadBack(wb);
|
||||
|
||||
sheet2 = wbBack.getSheetAt(idx2);
|
||||
sheet3 = wbBack.getSheetAt(idx3);
|
||||
assertEquals(idx2, wb.getFirstVisibleTab());
|
||||
assertEquals(idx3, wb.getActiveSheetIndex());
|
||||
} finally {
|
||||
wb.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user