zoukankan      html  css  js  c++  java
  • JAVA操作Excel时文字自适应单元格的宽度设置方法

          使用JAVA操作Excel通常都使用JXL,方法很简单网上也有很多的教程,然后往往一些细节性的问题却导致我们这些Programmer苦恼不已。这两天帮一个朋友做一个Excel表格自动生成的小软件,就遇到的类似的问题。

          问题描述:通过Java向Excel的一个单元格中写入大量的文字,即使在文字中使用    符号进行换行操作,当打开Excel表格的时候,发现文字不能按照我们预先设定的方法换行,而是显示在一行里面,导致整个Excel表格显示都乱掉了。必须得通过鼠标单击一下这个单元格文字才能按照单元格的宽度和程序中的换行命令实现换行的显示效果。

          这就很不爽了,每次我打开Excel的时候,还要把文字多的单元格全部用鼠标单击一下,才能按照我程序设定的显示方式显示。

          不过,后来仔细想一下,其实就是需要文字按照单元格设定的宽度/高度显示文本就行了,API中应该有相应的方法来实现的,只是我没找到而已。功夫不负有心人,在Google的帮助下,终于在百花丛中发现了她。

    WritableFont fontTitle = new WritableFont(WritableFont.TIMES, 9, WritableFont.NO_BOLD);
    fontTitle.setColour(jxl.format.Colour.RED);
    WritableCellFormat formatTitle = new WritableCellFormat(fontTitle);
    formatTitle.setWrap(true);
    /*-------------------------------------------------------------------------*/
    WritableSheet       m_sheet = null;
    m_sheet = m_writeBook.createSheet("第一页", 0);            
    m_sheet.setColumnView(0, 10);            
    m_sheet.setRowView(0, 500);            
    Label label  =   new  Label(0,  0,  "阿科是个不错的小伙子阿科是个不错" +
                   "的小伙子阿科是个不错的小伙子", format);   
    //将定义好的单元格添加到工作表中    
    m_sheet.addCell(label);  
    

            如上例当中,虽然列宽设置的仅仅是10,而文字的长度远远的超过10,但是由于使用WritableCellFormat的设置选项: formatTitle.setWrap(true)。从而使得单元格的文字按照单元格的列宽来自动换行显示。

            有问题,欢迎邮件讨论:qinpanke@gmail.com

            阿科

            2013年8月31日于北京邮电大学新科研楼302室

           

         

  • 相关阅读:
    ORM框架
    js获取浏览器和元素对象的尺寸
    js中的兼容问题
    JS页面上的流氓广告功能
    JS计算1到10的每一个数字的阶乘之和
    JS中 有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,棋盘上放的所有芝麻的重量
    JS中99乘法表
    JS 中计算 1
    JS中判断一个数是否为质数
    JS水仙花数
  • 原文地址:https://www.cnblogs.com/riskyer/p/3293998.html
Copyright © 2011-2022 走看看