[prev in list] [next in list] [prev in thread] [next in thread]
List: poi-dev
Subject: DO NOT REPLY [Bug 40520] New: - HSSFFont.applyFont() formats wrong parts of HSSFRichTextString
From: bugzilla () apache ! org
Date: 2006-09-15 13:22:43
Message-ID: bug-40520-7501 () http ! issues ! apache ! org/bugzilla/
[Download RAW message or body]
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=40520>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=40520
Summary: HSSFFont.applyFont() formats wrong parts of
HSSFRichTextString
Product: POI
Version: 3.0-dev
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: normal
Priority: P2
Component: HSSF
AssignedTo: poi-dev@jakarta.apache.org
ReportedBy: Martin.Jost@siemens.com
I'm using poi-bin-3.0-alpha2-20060616 because I need support for (RichText)
formatting within a cell. The resulting sheet is read by Excel 2003 SP2.
I found a number of cases where I think, HSSFFont.applyFont() formats wrong
parts of HSSFRichTextString. (see testcase below)
This seems to happen in (at least) the following cases:
// overlapped range => will format whole String
str.applyFont(0,7,font);
str.applyFont(5,9,font);
// formated twice => will format whole String
str2.applyFont(0,2,font);
str2.applyFont(0,2,font);
// wrong order and formated twice => will format 0-6
str3.applyFont(0,2,font);
str3.applyFont(5,7,font);
str3.applyFont(0,2,font);
My "font" just uses a foreground color "font.setColor((short) 2);".
Here is my complete testcase. (I will try to attach it also, but haven't seen
an option until now to attach a file)
------------------ snip, snip ----
package poi_hssf;
import java.io.*;
import org.apache.poi.hssf.usermodel.*;
public class HSSFRichText
{
private void newRow()
{
this.actRow = this.sheet.createRow(this.nextLineNr);
this.nextLineNr++;
this.actCol = 0;
}
private HSSFCell appendCell()
{
this.actCell = this.actRow.createCell(this.actCol++);
return (this.actCell);
}
private void test()
{
File file = new File("RichPOI.xls");
FileOutputStream outStream = null;
try
{
outStream = new FileOutputStream(file);
}
catch (FileNotFoundException e)
{
System.err.println(e.getStackTrace());
}
this.wb = new HSSFWorkbook();
this.sheet = wb.createSheet();
HSSFFont font;
font = this.wb.createFont();
font.setColor((short) 2); // Rot
HSSFCell cell;
this.newRow();
HSSFRichTextString str = new HSSFRichTextString
("f0_123456789012345678901234567890123456789012345678901234567890");
// overlapped range => will format whole String
str.applyFont(0,7,font);
str.applyFont(5,9,font);
cell = this.appendCell();
cell.setCellValue(str);
this.newRow();
HSSFRichTextString str2 = new HSSFRichTextString
("f1_123456789012345678901234567890123456789012345678901234567890");
// formated twice => will format whole String
str2.applyFont(0,2,font);
str2.applyFont(0,2,font);
cell = this.appendCell();
cell.setCellValue(str2);
this.newRow();
HSSFRichTextString str3 = new HSSFRichTextString
("f2_123456789012345678901234567890123456789012345678901234567890");
// wrong order => will format 0-6
str3.applyFont(0,2,font);
str3.applyFont(5,7,font);
str3.applyFont(0,2,font);
cell = this.appendCell();
cell.setCellValue(str3);
try
{
this.wb.write(outStream);
outStream.close();
}
catch (IOException e)
{
System.err.println(e.getStackTrace());
}
}
public static void main(String[] args)
{
HSSFRichText testit = new HSSFRichText();
testit.test();
}
private int nextLineNr;
private short actCol;
private HSSFWorkbook wb;
private HSSFSheet sheet;
private HSSFRow actRow;
private HSSFCell actCell;
}
--
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
---------------------------------------------------------------------
To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
Mailing List: http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta POI Project: http://jakarta.apache.org/poi/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic