]> source.dussan.org Git - poi.git/commitdiff
take into account indentation in HSSFSheet.autosizeColumn
authorYegor Kozlov <yegor@apache.org>
Mon, 5 May 2008 13:59:11 +0000 (13:59 +0000)
committerYegor Kozlov <yegor@apache.org>
Mon, 5 May 2008 13:59:11 +0000 (13:59 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@653484 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/changes.xml
src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java

index fee702809766455cb8b324a8d28c82212c5a4491..150b41ff9d4ede07412d6e3c138b9afb58da3c95 100644 (file)
@@ -43,7 +43,7 @@
            <action dev="POI-DEVELOPERS" type="fix">44914 - Fix/suppress warning message "WARN. Unread n bytes of record 0xNN"</action>
            <action dev="POI-DEVELOPERS" type="fix">44892 - made HSSFWorkbook.getSheet(String) case insensitive</action>
            <action dev="POI-DEVELOPERS" type="fix">44886] - Correctly process PICT metafile in EscherMetafileBlip</action>
-           <action dev="POI-DEVELOPERS" type="fix">44893 - Correctly handle merged regions in HSSFSheet.autoSizeColumn</action>
+           <action dev="POI-DEVELOPERS" type="fix">44893 - Take into account indentation in HSSFSheet.autoSizeColumn</action>
         </release>
         <release version="3.1-beta1" date="2008-04-28">
            <action dev="POI-DEVELOPERS" type="fix">44857 - Avoid OOM on unknown escher records when EscherMetafileBlip is incorrect</action>
index b6d8d5723f7748d748be74c3f1f1dc32c48bf89c..b56122688edfa076bbcbb3faca80d62af670e894 100644 (file)
@@ -1710,6 +1710,8 @@ public final class HSSFSheet {
 
             HSSFCellStyle style = cell.getCellStyle();
             HSSFFont font = wb.getFontAt(style.getFontIndex());
+            //the number of spaces to indent the text in the cell
+            int indention = style.getIndention();
 
             if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
                 HSSFRichTextString rt = cell.getRichStringCellValue();
@@ -1742,9 +1744,9 @@ public final class HSSFSheet {
                         trans.concatenate(
                         AffineTransform.getScaleInstance(1, fontHeightMultiple)
                         );
-                        width = Math.max(width, layout.getOutline(trans).getBounds().getWidth() / defaultCharWidth);
+                        width = Math.max(width, layout.getOutline(trans).getBounds().getWidth() / defaultCharWidth + indention);
                     } else {
-                        width = Math.max(width, layout.getBounds().getWidth() / defaultCharWidth);
+                        width = Math.max(width, layout.getBounds().getWidth() / defaultCharWidth + indention);
                     }
                 }
             } else {
@@ -1787,15 +1789,15 @@ public final class HSSFSheet {
                         trans.concatenate(
                         AffineTransform.getScaleInstance(1, fontHeightMultiple)
                         );
-                        width = Math.max(width, layout.getOutline(trans).getBounds().getWidth() / defaultCharWidth);
+                        width = Math.max(width, layout.getOutline(trans).getBounds().getWidth() / defaultCharWidth + indention);
                     } else {
-                        width = Math.max(width, layout.getBounds().getWidth() / defaultCharWidth);
+                        width = Math.max(width, layout.getBounds().getWidth() / defaultCharWidth + indention);
                     }
                 }
             }
 
             if (width != -1) {
-                if (width > Short.MAX_VALUE) { //width can be bigger that Short.MAX_VALUE!
+                if (width > Short.MAX_VALUE) { //calculated width can be greater that Short.MAX_VALUE!
                      width = Short.MAX_VALUE;
                 }
                 sheet.setColumnWidth(column, (short) (width * 256));