|Summary:||[PATCH] Improving performance of XSSFSheet#write|
|Product:||POI||Reporter:||Martin Studer <martin.studer>|
|Component:||XSSF||Assignee:||POI Developers List <dev>|
Patch SVN diff
Description Martin Studer 2011-08-08 20:15:06 UTC
Created attachment 27362 [details] Patch file This patch intends to provide improved performance for XSSFSheet#write by getting rid of XSSFSheet#ensureRowOrdering. The general idea is to keep the underlying CTSheetData row array collection sorted all times (this idea was highlighted by Yegor Kozlov in http://apache-poi.1045710.n5.nabble.com/Performance-Question-with-CTSheetDataImpl-java-td2335065.html). This requires that methods XSSFSheet#createRow, XSSFSheet#removeRow and XSSFSheet#shiftRows manage the worksheet.getSheetData() row array collection correspondingly. This patch also adapts one of the unit tests: TestXSSFSheet#testCreateRow This test was checking that creating rows in reverse order actually keeps the rows inside worksheet.getSheetData() in the order they have been inserted. This has been changed to a test that actually checks that rows are kept in ascending order.