利用poi包生成了excel,设置单元格为自动换行,往单元格里填充数据前 获取该单元格高度为255,默认高度,当填充完数据后,该单元格因为数据过大把单元格的高度撑大了,此时再获取该单元格高度,仍然是255的默认高度。我做了个尝试,在填充完数据后,把文件输出,然后再打开输出的文件获取被撑大的单元格的高度,仍然是255的默认高度。何解?

解决方案 »

  1.   

    // 设置单元格的文本方式为可多行编写方式
    cellStyle.setWrapText(true);
    或者
    sheet.autoSizeColumn(( short ) 0 ); // 自动调整某列宽度,这里是第一列
      

  2.   


    可能是我没说清楚,我知道如何设置单元格自动换行,但我不知道如何获取被填充后发生高度改变的单元格的真实高度,比如:单元格初始高度为255(poi里的单位),当单元格被数据填充后,单元格高度被改变了,当输出后你打开这个excel文件的时候你能很明显地看到这个单元格填充后的高度比原来大多了,但是poi里获取该单元格高度的时候仍然获取不了,给出的高度仍然是255的默认高度。
      如何获取被填充后发生高度改变的单元格的真实高度?
      

  3.   

    sheet.getColumnWidth((short)0)取某列高度
      

  4.   

    怎么是获取列的 宽度呢?  要获取也是获取行的高度呢 
    HSSFRow rowT = sheetT.getRow(1);    //第2行
    rowT.getHeight()//获取行高 
    这是正常的获取,通过这方法获取数据填充后的单元格高度 获取不了,获取到的始终是单元格的默认高度 255
       
      

  5.   

    http://www.cnblogs.com/interboy/archive/2007/12/24/872028.html你那个应该是设置高度吧,为什么是得到高度呢,因为你那内容太多以至把列撑大了(我想这里EXCEL不会智能的改变他的高,应该是你通过POI修改得到的),所以你得到的高度是默认的,应该是SET设置吧,看这个文章是不是你要的