diff --git a/build.xml b/build.xml
index 310585ca3..f58a4b19e 100644
--- a/build.xml
+++ b/build.xml
@@ -1000,7 +1000,7 @@ FORREST_HOME environment variable!
-
+
diff --git a/src/examples/src/org/apache/poi/ss/usermodel/examples/FromQuickGuide.java b/src/examples/src/org/apache/poi/ss/usermodel/examples/FromQuickGuide.java
deleted file mode 100644
index d438facc1..000000000
--- a/src/examples/src/org/apache/poi/ss/usermodel/examples/FromQuickGuide.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-==================================================================== */
-package org.apache.poi.ss.usermodel.examples;
-
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Date;
-
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.CellStyle;
-import org.apache.poi.ss.usermodel.CreationHelper;
-import org.apache.poi.ss.usermodel.DateUtil;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.ss.usermodel.WorkbookFactory;
-import org.apache.poi.ss.util.CellReference;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-
-/**
- * Various things from the quick guide documentation
- */
-public class FromQuickGuide {
- public static void newWorkbook() throws IOException {
- boolean doHSSF = true;
- boolean doXSSF = true;
-
- if(doHSSF) {
- Workbook wb = new HSSFWorkbook();
- FileOutputStream fileOut = new FileOutputStream("workbook.xls");
- wb.write(fileOut);
- fileOut.close();
- }
- if(doXSSF) {
- Workbook wb = new XSSFWorkbook();
- FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
- wb.write(fileOut);
- fileOut.close();
- }
- }
-
- public static void newSheet() throws IOException {
- Workbook[] wbs = new Workbook[] {
- new HSSFWorkbook(), new XSSFWorkbook()
- };
-
- for (int i = 0; i < wbs.length; i++) {
- Workbook wb = wbs[i];
- Sheet sheet1 = wb.createSheet("new sheet");
- Sheet sheet2 = wb.createSheet("second sheet");
- FileOutputStream fileOut = new FileOutputStream("workbook.xls");
- wb.write(fileOut);
- fileOut.close();
- }
- }
-
- public static void newCells() throws IOException {
- Workbook[] wbs = new Workbook[] {
- new HSSFWorkbook(), new XSSFWorkbook()
- };
-
- for (int i = 0; i < wbs.length; i++) {
- Workbook wb = wbs[i];
- CreationHelper createHelper = wb.getCreationHelper();
- Sheet sheet = wb.createSheet("new sheet");
-
- // Create a row and put some cells in it. Rows are 0 based.
- Row row = sheet.createRow((short)0);
- // Create a cell and put a value in it.
- Cell cell = row.createCell((short)0);
- cell.setCellValue(1);
-
- // Or do it on one line.
- row.createCell((short)1).setCellValue(1.2);
- row.createCell((short)2).setCellValue(
- createHelper.createRichTextString("This is a string"));
- row.createCell((short)3).setCellValue(true);
-
- // Write the output to a file
- FileOutputStream fileOut = new FileOutputStream("workbook.xls");
- wb.write(fileOut);
- fileOut.close();
- }
- }
-
- public static void newDateCells() throws IOException {
- Workbook wb = new HSSFWorkbook();
- //Workbook wb = new XSSFWorkbook();
- CreationHelper createHelper = wb.getCreationHelper();
- Sheet sheet = wb.createSheet("new sheet");
-
- // Create a row and put some cells in it. Rows are 0 based.
- Row row = sheet.createRow((short)0);
-
- // Create a cell and put a date value in it. The first cell is not styled
- // as a date.
- Cell cell = row.createCell((short)0);
- cell.setCellValue(new Date());
-
- // we style the second cell as a date (and time). It is important to
- // create a new cell style from the workbook otherwise you can end up
- // modifying the built in style and effecting not only this cell but other cells.
- CellStyle cellStyle = wb.createCellStyle();
- cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("m/d/yy h:mm"));
- cell = row.createCell((short)1);
- cell.setCellValue(new Date());
- cell.setCellStyle(cellStyle);
-
- // Write the output to a file
- FileOutputStream fileOut = new FileOutputStream("workbook.xls");
- wb.write(fileOut);
- fileOut.close();
- }
-
- public static void iterating() {
- Workbook wb = new HSSFWorkbook();
- Sheet sheet = wb.createSheet("new sheet");
-
- for (Row row : sheet) {
- for (Cell cell : row) {
- // Do something here
- System.out.println(cell.getCellType());
- }
- }
- }
-
- public static void getCellContents(Sheet sheet) {
- for (Row row : sheet) {
- for (Cell cell : row) {
- CellReference cellRef = new CellReference(row.getRowNum(), cell.getColumnIndex());
- System.out.print(cellRef.formatAsString());
- System.out.print(" - ");
-
- switch(cell.getCellType()) {
- case Cell.CELL_TYPE_STRING:
- System.out.println(cell.getRichStringCellValue().getString());
- break;
- case Cell.CELL_TYPE_NUMERIC:
- if(DateUtil.isCellDateFormatted(cell)) {
- System.out.println(cell.getDateCellValue());
- } else {
- System.out.println(cell.getNumericCellValue());
- }
- break;
- case Cell.CELL_TYPE_BOOLEAN:
- System.out.println(cell.getBooleanCellValue());
- break;
- case Cell.CELL_TYPE_FORMULA:
- System.out.println(cell.getCellFormula());
- break;
- default:
- System.out.println();
- }
- }
- }
- }
-
- public static void main(String[] args) throws Exception {
- Workbook wb = WorkbookFactory.create(new FileInputStream("src/testcases/org/apache/poi/hssf/data/WithMoreVariousData.xlsx"));
- getCellContents(wb.getSheetAt(0));
- }
-}
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/AligningCells.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/AligningCells.java
index a896a6bcc..066a07f4d 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/AligningCells.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/AligningCells.java
@@ -28,7 +28,7 @@ import java.io.FileOutputStream;
public class AligningCells {
public static void main(String[] args) throws Exception {
- Workbook wb = new XSSFWorkbook();
+ Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
Sheet sheet = wb.createSheet();
Row row = sheet.createRow((short) 2);
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/CalendarDemo.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/CalendarDemo.java
index 298b63f53..52dcaed51 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/CalendarDemo.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/CalendarDemo.java
@@ -128,7 +128,7 @@ public class CalendarDemo {
/**
* cell styles used for formatting calendar sheets
*/
- public static Map createStyles(XSSFWorkbook wb){
+ private static Map createStyles(XSSFWorkbook wb){
Map styles = new HashMap();
XSSFCellStyle style;
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateCell.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateCell.java
index 1a79b6ae0..09fce61d7 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateCell.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateCell.java
@@ -31,7 +31,7 @@ public class CreateCell {
public static void main(String[]args) throws Exception {
- Workbook wb = new XSSFWorkbook();
+ Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
CreationHelper creationHelper = wb.getCreationHelper();
Sheet sheet = wb.createSheet("new sheet");
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateUserDefinedDataFormats.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateUserDefinedDataFormats.java
index 9905a9af3..2c37ea08d 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateUserDefinedDataFormats.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateUserDefinedDataFormats.java
@@ -34,7 +34,7 @@ public class CreateUserDefinedDataFormats {
public static void main(String[]args) throws Exception {
- Workbook wb = new XSSFWorkbook();
+ Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
Sheet sheet = wb.createSheet("format sheet");
CellStyle style;
DataFormat format = wb.createDataFormat();
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/FillsAndColors.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/FillsAndColors.java
index 5c5b623b8..019e14d1c 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/FillsAndColors.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/FillsAndColors.java
@@ -28,7 +28,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
*/
public class FillsAndColors {
public static void main(String[] args) throws Exception {
- Workbook wb = new XSSFWorkbook();
+ Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
Sheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/FitSheetToOnePage.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/FitSheetToOnePage.java
index e7fb42b4b..a781688c3 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/FitSheetToOnePage.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/FitSheetToOnePage.java
@@ -27,7 +27,7 @@ public class FitSheetToOnePage {
public static void main(String[]args) throws Exception {
- Workbook wb = new XSSFWorkbook();
+ Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
Sheet sheet = wb.createSheet("format sheet");
PrintSetup ps = sheet.getPrintSetup();
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/HeadersAndFooters.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/HeadersAndFooters.java
index 3726c5819..8b95fe63c 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/HeadersAndFooters.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/HeadersAndFooters.java
@@ -29,7 +29,7 @@ public class HeadersAndFooters {
public static void main(String[]args) throws Exception {
- Workbook wb = new XSSFWorkbook();
+ Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
Sheet sheet = wb.createSheet("first-header - format sheet");
sheet.createRow(0).createCell(0).setCellValue(123);
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/HyperlinkExample.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/HyperlinkExample.java
index 4e4c4c647..dd30fcc23 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/HyperlinkExample.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/HyperlinkExample.java
@@ -29,7 +29,7 @@ public class HyperlinkExample {
public static void main(String[]args) throws Exception{
- Workbook wb = new XSSFWorkbook();
+ Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
CreationHelper createHelper = wb.getCreationHelper();
//cell style for hyperlinks
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/LoanCalculator.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/LoanCalculator.java
index 7d3f9d80e..187ab579c 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/LoanCalculator.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/LoanCalculator.java
@@ -138,7 +138,7 @@ public class LoanCalculator {
/**
* cell styles used for formatting calendar sheets
*/
- public static Map createStyles(XSSFWorkbook wb){
+ private static Map createStyles(XSSFWorkbook wb){
Map styles = new HashMap();
XSSFCellStyle style;
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/MergingCells.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/MergingCells.java
index 853fef176..430fc45a4 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/MergingCells.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/MergingCells.java
@@ -32,7 +32,7 @@ import java.io.FileOutputStream;
*/
public class MergingCells {
public static void main(String[] args) throws Exception {
- Workbook wb = new XSSFWorkbook();
+ Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
Sheet sheet = wb.createSheet("new sheet");
Row row = sheet.createRow((short) 1);
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/NewLinesInCells.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/NewLinesInCells.java
index 07045df56..5626e7a7c 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/NewLinesInCells.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/NewLinesInCells.java
@@ -31,7 +31,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class NewLinesInCells {
public static void main(String[]args) throws Exception {
- Workbook wb = new XSSFWorkbook();
+ Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
Sheet sheet = wb.createSheet();
Row row = sheet.createRow(2);
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/SelectedSheet.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/SelectedSheet.java
index f79c4163d..933e470d5 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/SelectedSheet.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/SelectedSheet.java
@@ -26,7 +26,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class SelectedSheet {
public static void main(String[]args) throws Exception {
- Workbook wb = new XSSFWorkbook();
+ Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
Sheet sheet = wb.createSheet("row sheet");
Sheet sheet2 = wb.createSheet("another sheet");
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/ShiftRows.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/ShiftRows.java
index 09ae38690..ec4bb2139 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/ShiftRows.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/ShiftRows.java
@@ -30,7 +30,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ShiftRows {
public static void main(String[]args) throws Exception {
- Workbook wb = new XSSFWorkbook();
+ Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
Sheet sheet = wb.createSheet("Sheet1");
Row row1 = sheet.createRow(1);
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/TimesheetDemo.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/TimesheetDemo.java
index 45580fffc..9c28e33af 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/TimesheetDemo.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/TimesheetDemo.java
@@ -149,7 +149,7 @@ public class TimesheetDemo {
out.close();
}
- public static Map createStyles(XSSFWorkbook wb){
+ private static Map createStyles(XSSFWorkbook wb){
Map styles = new HashMap();
XSSFCellStyle style;
XSSFFont titleFont = wb.createFont();
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithBorders.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithBorders.java
index 825febde7..c45cb392c 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithBorders.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithBorders.java
@@ -27,7 +27,7 @@ import java.io.FileOutputStream;
*/
public class WorkingWithBorders {
public static void main(String[] args) throws Exception {
- Workbook wb = new XSSFWorkbook();
+ Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
Sheet sheet = wb.createSheet("borders");
// Create a row and put some cells in it. Rows are 0 based.
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithFonts.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithFonts.java
index c5d814b43..dc903fba2 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithFonts.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithFonts.java
@@ -27,7 +27,7 @@ import java.io.FileOutputStream;
*/
public class WorkingWithFonts {
public static void main(String[] args) throws Exception {
- Workbook wb = new XSSFWorkbook();
+ Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
Sheet sheet = wb.createSheet("Fonts");
Font font0 = wb.createFont();
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPageSetup.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPageSetup.java
index 137379e57..d1be7af17 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPageSetup.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPageSetup.java
@@ -29,7 +29,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class WorkingWithPageSetup {
public static void main(String[]args) throws Exception {
- Workbook wb = new XSSFWorkbook();
+ Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
/**
* It's possible to set up repeating rows and columns in your printouts by using the setRepeatingRowsAndColumns() function in the Workbook object.
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPictures.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPictures.java
index b4c018d9a..679a77cda 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPictures.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPictures.java
@@ -32,7 +32,7 @@ public class WorkingWithPictures {
public static void main(String[] args) throws IOException {
//create a new workbook
- XSSFWorkbook wb = new XSSFWorkbook();
+ XSSFWorkbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
//add a picture in this workbook.
InputStream is = new FileInputStream("lilies.jpg");
diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithRichText.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithRichText.java
index 6070caa13..134c01f19 100755
--- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithRichText.java
+++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithRichText.java
@@ -17,7 +17,6 @@
package org.apache.poi.xssf.usermodel.examples;
import org.apache.poi.xssf.usermodel.*;
-import org.apache.poi.ss.usermodel.*;
import java.io.FileOutputStream;
@@ -27,30 +26,36 @@ import java.io.FileOutputStream;
public class WorkingWithRichText {
public static void main(String[] args) throws Exception {
-
- XSSFWorkbook wb = new XSSFWorkbook();
+
+ XSSFWorkbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
XSSFSheet sheet = wb.createSheet();
XSSFRow row = sheet.createRow((short) 2);
XSSFCell cell = row.createCell(1);
- XSSFRichTextString rt = new XSSFRichTextString("The quick");
+ XSSFRichTextString rt = new XSSFRichTextString("The quick brown fox");
XSSFFont font1 = wb.createFont();
font1.setBold(true);
- rt.append(" brown fox", font1);
+ font1.setColor(new XSSFColor(new java.awt.Color(255, 0, 0)));
+ rt.applyFont(0, 10, font1);
XSSFFont font2 = wb.createFont();
font2.setItalic(true);
- font2.setColor(IndexedColors.RED.getIndex());
- rt.applyFont((short) 0);
+ font2.setUnderline(XSSFFont.U_DOUBLE);
+ font2.setColor(new XSSFColor(new java.awt.Color(0, 255, 0)));
+ rt.applyFont(10, 19, font2);
+
+ XSSFFont font3 = wb.createFont();
+ font3.setColor(new XSSFColor(new java.awt.Color(0, 0, 255)));
+ rt.append(" Jumped over the lazy dog", font3);
+
cell.setCellValue(rt);
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("xssf-richtext.xlsx");
wb.write(fileOut);
fileOut.close();
-
}
}
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java
index a0bc00d5a..4c698cc01 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java
@@ -31,7 +31,9 @@ public class XSSFCreationHelper implements CreationHelper {
* Creates a new XSSFRichTextString for you.
*/
public XSSFRichTextString createRichTextString(String text) {
- return new XSSFRichTextString(text);
+ XSSFRichTextString rt =new XSSFRichTextString(text);
+ rt.setStylesTableReference(workbook.getStylesSource());
+ return rt;
}
public XSSFDataFormat createDataFormat() {
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRichTextString.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRichTextString.java
index 71529e9f4..54d5938f4 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRichTextString.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRichTextString.java
@@ -68,7 +68,6 @@ import java.util.ArrayList;
public class XSSFRichTextString implements RichTextString {
private CTRst st;
private StylesTable styles;
- private ArrayList fontIdRuns;
/**
* Create a rich text string and initialize it with empty string
@@ -106,7 +105,6 @@ public class XSSFRichTextString implements RichTextString {
//when setStylesTableReference is called
font = new XSSFFont();
font.setFontName("#" + fontIndex);
- fontIdRuns = new ArrayList();
} else {
font = styles.getFontAt(fontIndex);
}
@@ -139,50 +137,50 @@ public class XSSFRichTextString implements RichTextString {
XSSFFont xssfFont = (XSSFFont)font;
ArrayList runs = new ArrayList();
+ CTRElt[] r = st.getRArray();
int pos = 0;
- int i;
- for (i = 0; i < st.sizeOfRArray(); i++) {
- CTRElt r = st.getRArray(i);
+ for (int i = 0; i < r.length; i++) {
+ int rStart = pos;
+ String t = r[i].getT();
+ int rEnd = rStart + t.length();
- int len = r.getT().length();
- int p1 = pos;
- int p2 = pos + len;
- if(startIndex > p2) {
- runs.add(r);
- } else if (startIndex >= p1 && startIndex < p2){
- String t = r.getT();
- r.setT(t.substring(0, startIndex-p1));
- runs.add(r);
+ if(rEnd <= startIndex) {
+ runs.add(r[i]);
+ pos += r[i].getT().length();
+ }
+ else if (startIndex > rStart && startIndex < rEnd){
+ CTRElt c = (CTRElt)r[i].copy();
+ String txt = text.substring(rStart, startIndex);
+ c.setT(txt);
+ runs.add(c);
+ pos += txt.length();
} else {
break;
}
- pos = p2;
}
- CTRElt r = CTRElt.Factory.newInstance();
- r.setT(text.substring(startIndex, endIndex));
- CTRPrElt pr = r.addNewRPr();
+ CTRElt rt = CTRElt.Factory.newInstance();
+ String txt = text.substring(startIndex, endIndex);
+ rt.setT(txt);
+ CTRPrElt pr = rt.addNewRPr();
setRunAttributes(xssfFont.getCTFont(), pr);
- if(fontIdRuns != null) fontIdRuns.add(pr);
- runs.add(r);
+ runs.add(rt);
+ pos += txt.length();
- for (; i < st.sizeOfRArray(); i++) {
- r = st.getRArray(i);
+ for (int i = 0; i < r.length; i++) {
+ int rStart = pos;
+ String t = r[i].getT();
+ int rEnd = Math.min(rStart + t.length(), text.length());
- int len = r.getT().length();
- int p1 = pos;
- int p2 = pos + len;
- if(endIndex > p2) {
- ;
- } else if (endIndex >= p1 && endIndex < p2){
- String t = r.getT();
- r.setT(t.substring(endIndex-p1, len));
- runs.add(r);
- } else {
- runs.add(r);
+ if (endIndex < rEnd){
+ CTRElt c = (CTRElt)r[i].copy();
+ txt = text.substring(rStart, rEnd);
+ c.setT(txt);
+ runs.add(c);
+ pos += txt.length();
}
- pos = p2;
}
+
st.setRArray(runs.toArray(new CTRElt[runs.size()]));
}
@@ -202,9 +200,6 @@ public class XSSFRichTextString implements RichTextString {
setRunAttributes(((XSSFFont)font).getCTFont(), r.addNewRPr());
st.setRArray(new CTRElt[]{r});
}
-
- if(fontIdRuns != null) fontIdRuns.add(st.getRArray(0).getRPr());
-
}
/**
@@ -217,7 +212,6 @@ public class XSSFRichTextString implements RichTextString {
if(styles == null) {
font = new XSSFFont();
font.setFontName("#" + fontIndex);
- fontIdRuns = new ArrayList();
} else {
font = styles.getFontAt(fontIndex);
}
@@ -240,8 +234,6 @@ public class XSSFRichTextString implements RichTextString {
lt.setT(text);
CTRPrElt pr = lt.addNewRPr();
if(font != null) setRunAttributes(font.getCTFont(), pr);
-
- if(fontIdRuns != null) fontIdRuns.add(pr);
}
/**
@@ -419,9 +411,10 @@ public class XSSFRichTextString implements RichTextString {
protected void setStylesTableReference(StylesTable tbl){
styles = tbl;
- if(fontIdRuns != null){
- for (CTRPrElt pr : fontIdRuns) {
- if(pr.sizeOfRFontArray() > 0 ) {
+ if(st.sizeOfRArray() > 0) {
+ for (CTRElt r : st.getRArray()) {
+ CTRPrElt pr = r.getRPr();
+ if(pr != null){
String fontName = pr.getRFontArray(0).getVal();
if(fontName.startsWith("#")){
int idx = Integer.parseInt(fontName.substring(1));
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
index 13c1ffce5..c72241a72 100644
--- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
+++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
@@ -332,7 +332,7 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
pane.setTopLeftCell(new CellReference(0, topRow).formatAsString());
pane.setActivePane(STPane.TOP_RIGHT);
} else if (colSplit == 0) {
- pane.setTopLeftCell(new CellReference(leftmostColumn, 64).formatAsString());
+ pane.setTopLeftCell(new CellReference(rowSplit, 0).formatAsString());
pane.setActivePane(STPane.BOTTOM_LEFT);
} else {
pane.setTopLeftCell(new CellReference(leftmostColumn, topRow).formatAsString());
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFName.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFName.java
index e5267688a..9a9f0849f 100755
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFName.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFName.java
@@ -28,11 +28,10 @@ public class TestXSSFName extends TestCase {
// Create a new workbook
XSSFWorkbook wb = new XSSFWorkbook();
-
- // Create a worksheet 'sheet1' in the new workbook
XSSFName name1 = wb.createName();
name1.setNameName("testOne");
+ //setting a duplicate name should throw IllegalArgumentException
XSSFName name2 = wb.createName();
try {
name2.setNameName("testOne");
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java
index b1e8f74e4..475a1ce09 100755
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java
@@ -71,7 +71,7 @@ public class TestXSSFRichTextString extends TestCase {
rt.applyFont(2, 5, font1);
- assertEquals(4, rt.numFormattingRuns());
+ assertEquals(5, rt.numFormattingRuns());
assertEquals(0, rt.getIndexOfFormattingRun(0));
assertEquals(2, rt.getLengthOfFormattingRun(0));
@@ -79,10 +79,10 @@ public class TestXSSFRichTextString extends TestCase {
assertEquals(3, rt.getLengthOfFormattingRun(1));
assertEquals(5, rt.getIndexOfFormattingRun(2));
- assertEquals(2, rt.getLengthOfFormattingRun(2));
+ assertEquals(3, rt.getLengthOfFormattingRun(2));
- assertEquals(7, rt.getIndexOfFormattingRun(3));
- assertEquals(2, rt.getLengthOfFormattingRun(3));
+ assertEquals(8, rt.getIndexOfFormattingRun(3));
+ assertEquals(1, rt.getLengthOfFormattingRun(3));
}
public void testClearFormatting() throws Exception {