BTW I have spotted a "Standard Font" option in MS Excel Tools-> Options [General Tab]. Changing this setting requires restarting excel. After changes take effect the default column widths are adjusted for new settings.
So default font can be other than arial/12 Wassalam Tahir -----Original Message----- From: Yegor Kozlov [mailto:[EMAIL PROTECTED] Sent: Thursday, January 25, 2007 5:30 PM To: POI Users List Subject: Re[6]: Autosizing question: TA> Any other guess while we search for definite answer? I would stick to "a". Looks most natural choice to me. Even if it is not "a", the algorithm for width calculation will be pretty close to Excel. So the implementation plan gets more concrete: - get the number of characters for the default column width (default is 8) - get the default font (Arial) - compute width of the surrogate string "aaaaaaaa" using Java2D classes (java.awt.font.TextLayout). - derive a coefficient to translate 1/256th units to pixels. autosizing: - compute max(width) of the column cells using Java2D, translate it to 1/256th units and resize the column. Yegor TA> -----Original Message----- TA> From: Yegor Kozlov [mailto:[EMAIL PROTECTED] TA> Sent: Thursday, January 25, 2007 4:34 PM TA> To: POI Users List TA> Subject: Re[4]: Autosizing question: TA>> I would love if you can elaborate a bit on "units of 1/256th of a TA> character TA>> width of the default font". Is the default font is system specific or TA> same TA>> across excel versions/platforms? TA> The default font is workbook-specific. You can get is as follows: TA> HSSFFont font = workbook.getFontAt((short)0); TA> There is always one with index 0. On Windows the default is Arial. TA>> Is a specific character is used for width TA>> calculation or we assume fixed width fonts? TA> I don't know. Arial is default and it is a proportional font and the glyphs TA> have different TA> width. The phrase "1/256th of a character width of the default font" TA> is taken from the xls format spec. It says nothing about the TA> used characters. TA> Yegor TA>> Wassalam TA>> Tahir TA>> -----Original Message----- TA>> From: Yegor Kozlov [mailto:[EMAIL PROTECTED] TA>> Sent: Thursday, January 25, 2007 3:19 PM TA>> To: POI Users List TA>> Subject: Re[2]: Autosizing question: TA>> Aha! Thank you for the link. TA>> I think user's DPI is not an issue for autosizing. TA>> Column width in Excel is expressed in units of 1/256th of a character TA> width TA>> of the default font. TA>> In theory, if you calculate width of text and translate it to the XLS TA>> units then the column width should not depend on client's DPI. TA>> A simple experiment to do: create an xls file, autosize a column and TA>> try to view it on a system with a different DPI. TA>> Regards, TA>> Yegor TA>>> I guess the issue is not in the font sizes but the screen dpi TA>> calculation. TA>>> Net result is if you render some text in "Ariel, 12" it will appear TA>> smaller TA>>> on screen as compared to same text & font rendered by windows natively. TA>> See TA>>> this bug report (and related bug 4016591) for details: TA>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4168757 . TA>>> Wassalam TA>>> Tahir TA>>> -----Original Message----- TA>>> From: Yegor Kozlov [mailto:[EMAIL PROTECTED] TA>>> Sent: Thursday, January 25, 2007 2:28 PM TA>>> To: POI Users List TA>>> Subject: Re[2]: Autosizing question: TA>>> Are you sure the Java's font sizes are incompatible with Windows fonts? TA>>> Could you point me to the source of this information? I plan to add TA>>> drawing capabilities to HSLF and this stuff is important to me. TA>>> Regards, TA>>> Yegor ACO>>>> Its actually more compounded than that. You can basically do this TA>> with ACO>>>> Java's AWT Font/FontMetrics classes but the sizes are incompatible TA>> with ACO>>>> Windows fonts (let alone Mac et al). Someone has to record the data TA>>> for ACO>>>> Windows fonts and or an API that reads the font files and calculates TA>>> them. ACO>>>> -Andy ACO>>>> Avik Sengupta wrote: >>>>>> Since VBA have this function to autosize >>>>>> >>>>>>> columns, I wonder if POI have >>>>>>> >>>>> >>>>> POI is not, and was never meant to be, a replacement for VBA. Its a TA> file >>>>> format reader/writer. To do autosizing, one needs a fontmetrics >>>>> implementation. We're yet find one that is useful and easy enuf to use. >>>>> >>>>> However, as a frequently requested feature, its a ripe oppurtunity for >>>>> contribution :) >>>>> >>>>> Regards >>>>> - >>>>> Avik >>>>> >>>>> On Wednesday 24 January 2007 17:36, Adelbert Groebbens wrote: >>>>> >>>>>>> Autosizing question: >>>>>>> >>>>>>> Hello, is there a way to autosize the specified column >>>>>>> in POI? Since VBA have this function to autosize >>>>>>> columns, I wonder if POI have, if not, I have to >>>>>>> setsize for each column, I think it would waste a lot >>>>>>> of resource right? Thanks >>>>>>> >>>>>> I'm facing the same problem. >>>>>> >>>>>> Did you find a solution? >>>>>> >>>>>> Bret Hart <im2heat <at> yahoo.com> writes: >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>>> Mailing List: http://jakarta.apache.org/site/mail2.html#poi >>>>>> The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/ >>>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>> Mailing List: http://jakarta.apache.org/site/mail2.html#poi >>>>> The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/ >>>>> >>>>> >>>>> >>>>> TA>>> --------------------------------------------------------------------- TA>>> To unsubscribe, e-mail: [EMAIL PROTECTED] TA>>> Mailing List: http://jakarta.apache.org/site/mail2.html#poi TA>>> The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/ TA>>> --------------------------------------------------------------------- TA>>> To unsubscribe, e-mail: [EMAIL PROTECTED] TA>>> Mailing List: http://jakarta.apache.org/site/mail2.html#poi TA>>> The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/ TA>> --------------------------------------------------------------------- TA>> To unsubscribe, e-mail: [EMAIL PROTECTED] TA>> Mailing List: http://jakarta.apache.org/site/mail2.html#poi TA>> The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/ TA>> --------------------------------------------------------------------- TA>> To unsubscribe, e-mail: [EMAIL PROTECTED] TA>> Mailing List: http://jakarta.apache.org/site/mail2.html#poi TA>> The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/ TA> --------------------------------------------------------------------- TA> To unsubscribe, e-mail: [EMAIL PROTECTED] TA> Mailing List: http://jakarta.apache.org/site/mail2.html#poi TA> The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/ TA> --------------------------------------------------------------------- TA> To unsubscribe, e-mail: [EMAIL PROTECTED] TA> Mailing List: http://jakarta.apache.org/site/mail2.html#poi TA> The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] Mailing List: http://jakarta.apache.org/site/mail2.html#poi The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] Mailing List: http://jakarta.apache.org/site/mail2.html#poi The Apache Jakarta Poi Project: http://jakarta.apache.org/poi/
