Browse Source

1. included ooxml javadocs in build.xml2. added a new rich example: BusinessPlan.java3. misc bug fixes

git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@711839 13f79535-47bb-0310-9956-ffa450edef68
tags/ooxml_20081107
Yegor Kozlov 15 years ago
parent
commit
886e06cb2a
26 changed files with 80 additions and 259 deletions
  1. 1
    1
      build.xml
  2. 0
    178
      src/examples/src/org/apache/poi/ss/usermodel/examples/FromQuickGuide.java
  3. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/AligningCells.java
  4. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/CalendarDemo.java
  5. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateCell.java
  6. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateUserDefinedDataFormats.java
  7. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/FillsAndColors.java
  8. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/FitSheetToOnePage.java
  9. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/HeadersAndFooters.java
  10. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/HyperlinkExample.java
  11. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/LoanCalculator.java
  12. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/MergingCells.java
  13. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/NewLinesInCells.java
  14. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/SelectedSheet.java
  15. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/ShiftRows.java
  16. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/TimesheetDemo.java
  17. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithBorders.java
  18. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithFonts.java
  19. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPageSetup.java
  20. 1
    1
      src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPictures.java
  21. 13
    8
      src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithRichText.java
  22. 3
    1
      src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java
  23. 39
    46
      src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRichTextString.java
  24. 1
    1
      src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
  25. 1
    2
      src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFName.java
  26. 4
    4
      src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java

+ 1
- 1
build.xml View File

@@ -1000,7 +1000,7 @@ FORREST_HOME environment variable!</echo>
<packageset dir="${contrib.src}" defaultexcludes="yes">
<include name="org/apache/poi/**"/>
</packageset>
<packageset dir="${examples.src}" defaultexcludes="yes">
<packageset dir="${ooxml.src}" defaultexcludes="yes">
<include name="org/apache/poi/**"/>
</packageset>


+ 0
- 178
src/examples/src/org/apache/poi/ss/usermodel/examples/FromQuickGuide.java View File

@@ -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));
}
}

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/AligningCells.java View File

@@ -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);

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/CalendarDemo.java View File

@@ -128,7 +128,7 @@ public class CalendarDemo {
/**
* cell styles used for formatting calendar sheets
*/
public static Map<String, XSSFCellStyle> createStyles(XSSFWorkbook wb){
private static Map<String, XSSFCellStyle> createStyles(XSSFWorkbook wb){
Map<String, XSSFCellStyle> styles = new HashMap<String, XSSFCellStyle>();
XSSFCellStyle style;

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateCell.java View File

@@ -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");


+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/CreateUserDefinedDataFormats.java View File

@@ -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();

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/FillsAndColors.java View File

@@ -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.

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/FitSheetToOnePage.java View File

@@ -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();


+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/HeadersAndFooters.java View File

@@ -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);


+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/HyperlinkExample.java View File

@@ -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

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/LoanCalculator.java View File

@@ -138,7 +138,7 @@ public class LoanCalculator {
/**
* cell styles used for formatting calendar sheets
*/
public static Map<String, XSSFCellStyle> createStyles(XSSFWorkbook wb){
private static Map<String, XSSFCellStyle> createStyles(XSSFWorkbook wb){
Map<String, XSSFCellStyle> styles = new HashMap<String, XSSFCellStyle>();
XSSFCellStyle style;

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/MergingCells.java View File

@@ -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);

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/NewLinesInCells.java View File

@@ -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);

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/SelectedSheet.java View File

@@ -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");

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/ShiftRows.java View File

@@ -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);

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/TimesheetDemo.java View File

@@ -149,7 +149,7 @@ public class TimesheetDemo {
out.close();
}
public static Map<String, XSSFCellStyle> createStyles(XSSFWorkbook wb){
private static Map<String, XSSFCellStyle> createStyles(XSSFWorkbook wb){
Map<String, XSSFCellStyle> styles = new HashMap<String, XSSFCellStyle>();
XSSFCellStyle style;
XSSFFont titleFont = wb.createFont();

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithBorders.java View File

@@ -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.

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithFonts.java View File

@@ -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();

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPageSetup.java View File

@@ -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.

+ 1
- 1
src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPictures.java View File

@@ -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");

+ 13
- 8
src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithRichText.java View File

@@ -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();
}
}

+ 3
- 1
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCreationHelper.java View File

@@ -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() {

+ 39
- 46
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRichTextString.java View File

@@ -68,7 +68,6 @@ import java.util.ArrayList;
public class XSSFRichTextString implements RichTextString {
private CTRst st;
private StylesTable styles;
private ArrayList<CTRPrElt> 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<CTRPrElt>();
} else {
font = styles.getFontAt(fontIndex);
}
@@ -139,50 +137,50 @@ public class XSSFRichTextString implements RichTextString {
XSSFFont xssfFont = (XSSFFont)font;
ArrayList<CTRElt> runs = new ArrayList<CTRElt>();

CTRElt[] r = st.getRArray();
int pos = 0;
int i;
for (i = 0; i < st.sizeOfRArray(); i++) {
CTRElt r = st.getRArray(i);

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);
for (int i = 0; i < r.length; i++) {
int rStart = pos;
String t = r[i].getT();
int rEnd = rStart + t.length();

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);

for (; i < st.sizeOfRArray(); i++) {
r = st.getRArray(i);

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);
runs.add(rt);
pos += txt.length();

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());

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<CTRPrElt>();
} 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));

+ 1
- 1
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java View File

@@ -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());

+ 1
- 2
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFName.java View File

@@ -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");

+ 4
- 4
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRichTextString.java View File

@@ -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 {

Loading…
Cancel
Save