Thanks, this is very helpful. A couple of things.. Did you use "a" as the default character for any reason? Is that a standard assumption to make?
There seems to be a bug with HSSFSheet.getColumnWidth(). According to the javadocs, it should return the width of a column in units of 1/256 of a char width. This is ok if the column width has already been explicitly set with setColumnWidth(), but if not, it returns the same value as HSSFSheet.getDefaultColumnWidth(), which is measured in characters. So I'm getting the value 8 returned from getColumnWidth() for columns that haven't had their width changed. Is this a known issue? Thanks, Steve On 07/02/07, Yegor Kozlov <[EMAIL PROTECTED]> wrote:
>>The problem is that the cell width and height don't seem to be measured in the same units. Exactly. Excel anchores objects against top-left and buttom-right cells. In addition it uses dx and dy for "fine positioning" relative to these cells. So to get the correct aspect ratio you need to know the number of cells and rows your image will occupy. Here it gets complicated :). The problem is that column width in Excel is expressed in units of 1/256th of a character width of the default font. Conversion from these weird 1/256th units to pixels is not trivial. The minimal steps to calculate width of a cell in pixels are as follows: - get default workbook font. HSSFWorkbook.getFontAt(0) should always return the default one. - get default cell width expressed in 1/256th units. See HSSFSheet.getColumnWidth - Assuming that the default character is "a" compute the width of a surrogate string using Java2D classes. image.width/cell.width is the number of columns to be used in the anchor. I think this logic needs to be buried into POI API somehow. Probably it will be included in future. Regards, Yegor --------------------------------------------------------------------- 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/
