• 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室

           

         

  • 相关阅读:
    Bootstrap学习js插件篇之提示框
    动态装载外部JavaScript脚本文件
    Bootstrap学习js插件篇之滚动监听
    ASP.NET 仿腾讯微博提示“还能输入*个字符”的实现
    Javascript 操作 Sql中的Xml 字段
    Bootstrap学习js插件篇之标签页
    CSS垂直水平完全居中手册
    Bootstrap学习js插件篇之下拉菜单
    国庆大礼包:2014年最全的ANDROID GUI模板和线框图免费下载
    网上收集:跟着 8 张思维导图学习 Javascript【转】
  • 原文地址:https://www.cnblogs.com/riskyer/p/3293998.html
Copyright © 2020-2023  润新知