On Tue, 22 Nov 2011, Stuart Owen wrote:
Sorry, in my haste I described some of my wrapping code rather than POI
code. Of course the saveAs(URI) does not exist, but I meant
XSSFWorkbook.write. However, the problem still exists for me in that I get an
IndexOutOfBoundsException when reading column width after the workbook is
saved. I have isolated the problem in a simple unit test:
Any chance you could open a new bug in bugzilla, and attach the unit test
there? That way it shouldn't get forgotten
Also, if you have time, you might want to unzip the file that gets
generated (.xlsx is a zip of xml files), and look at the column settings.
If you're lucky, you might be able to spot something obvious...
Nick
@Test
public void testColumnWidthPOI() throws Exception {
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet();
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue("hello world");
assertEquals("hello
world",workbook.getSheetAt(0).getRow(0).getCell(0).getStringCellValue());
assertEquals(2048,workbook.getSheetAt(0).getColumnWidth(0));
//<-works
//gets a UUID based temporary file
File tmpDir = new File(System.getProperty("java.io.tmpdir"));
String uuid = UUID.randomUUID().toString();
File f = new File(tmpDir,uuid+".xlsx");
BufferedOutputStream stream = new BufferedOutputStream(new
FileOutputStream(f));
workbook.write(stream);
stream.close();
assertTrue(f.exists());
assertEquals("hello
world",workbook.getSheetAt(0).getRow(0).getCell(0).getStringCellValue());
assertEquals(2048,workbook.getSheetAt(0).getColumnWidth(0)); //<-
throws IndexOutOfBoundsException
}
thanks,
Stuart
On 21/11/11 17:59, Stuart Owen wrote:
Hi,
I'm encountering a problem with a XSSFWorkbook after I save if using
saveAs(URI). I am using the 3.8-beta4 version of apache poi.
Before saving the workbook I can get the column width for a given
column the contains a cell with some content, and this works fine.
However after calling saveAs(URI), if I then read the same column width
I receive an IndexOutOfBounds Exception, although the cell in that column
appears
to still exist and successfully returns with its value.
java.lang.IndexOutOfBoundsException
at
org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTWorksheetImpl.getColsArray(Unknown
Source)
at
org.apache.poi.xssf.usermodel.helpers.ColumnHelper.getColumn1Based(ColumnHelper.java:103)
at
org.apache.poi.xssf.usermodel.helpers.ColumnHelper.getColumn(ColumnHelper.java:95)
at
org.apache.poi.xssf.usermodel.XSSFSheet.getColumnWidth(XSSFSheet.java:668)
thanks in advance,
Stuart.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]