https://issues.apache.org/bugzilla/show_bug.cgi?id=53508
--- Comment #1 from Yegor Kozlov <[email protected]> --- Can you post sample code that compares two methods and demonstrates that current implementation is slow? SharedStringsTable.getKey() can be slow, but I'd like to see a proof. Every time a string is added to the SST, SharedStringsTable.getKey() computes its hash code which actually results to invoking xmlBean.toString().hashCode() where xmlBean is the bean holding the string data. Inlining strings has a side effect: it speeds up building of worksheets, but the resulting file can be much bigger and it will take significantly more time to open it in Excel. My idea is to tweak SharedStringsTable.getKey() as follows: private String getKey(CTRst st) { if(st.sizeOfRArray() == 0) { // for plain text return the text value return st.getT(); } else { // for rich text return xml representation of the CTRst bean return st.xmlText(options); } } if a string has no rich text runs then we return its text value, it should be much faster that invoking st.xmlText(options). It would be great if you apply this fix , build POI and meausure the performace boost. Yegor -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
