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

问题描述:通过Java向Excel的一个单元格中写入大量的文字,即使在文字中使用  \n  符号进行换行操作,当打开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室

JAVA操作Excel时文字自适应单元格的宽度设置方法的更多相关文章

  1. 【转载】jxl操作excel 字体 背景色 合并单元格 列宽等 .

    package com.email.jav; import java.io.File;import java.io.IOException;import java.net.URL; import jx ...

  2. C# 如何使用NPOI操作Excel以及读取合并单元格等

    C#操作Excel方法有很多,以前用的需要电脑安装office才能用,但因为版权问题公司不允许安装office.所以改用NPOI进行Excel操作,基本上一些简单的Excel操作都没有问题,读写合并单 ...

  3. NPOI导出Excel文件,对单元格的一些设置

    HSSFWorkbook book = new HSSFWorkbook(); MemoryStream ms = new MemoryStream(); ISheet sheet = book.Cr ...

  4. java操作mongodb时,对象bean和DBObject相互转换的方法

    package com.iqbon.spider.util; import java.lang.reflect.Field; import java.lang.reflect.InvocationTa ...

  5. NPOI操作Excel时使用列头来读取数据的方法

    首先定义扩展方法: public static ICell GetCell(this IRow row, string clounmName) { IRow firstRow = row.Sheet. ...

  6. Excel表格如何保护单元格不被修改

    Excel如何保护单元格不被修改  有时使用Excel时希望保护单元格不被修改,这可以叫做单元格的“写保护”即把光标定位在一个不允许输入数据的区域内时,是无论如何也无法在里面输入数据的.下面咱们就一起 ...

  7. Excel自文本导入内容时如何做到单元格内换行

    前言:今天在处理数据的时候,在数据库中用到了\n换行符号,目的是在同表格内做到数据多行显示,比如  字段名1  字段名2  字段名3  1 数据一行 数据二行 数据三行 例子是在sql查询后的结果  ...

  8. Java操作Excel工具类(poi)

    分享一个自己做的poi工具类,写不是很完全,足够我自己当前使用,有兴趣的可以自行扩展 1 import org.apache.commons.lang3.exception.ExceptionUtil ...

  9. 填报表导出excel非可写单元格锁定问题

     问题描述: 填报表单元格分为可写和不可写两种状态,当填报表在web上展现的时候可写单元格可以进行数据填报和修改,非可写单元格不可操作. 报表导出为excel时,润乾导出excel包默认情况下不对 ...

随机推荐

  1. Django 入门

    Django 入门 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模型,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容 ...

  2. 关于微软RDLC报表打印时文字拉伸问题(Windows server 2003 sp2)

    最近我们开发的打印服务频频出现打印文字拉伸问题,客户意见络绎不绝,最为明显的是使用黑体加粗后 “2.0份” 打印出来后小数点几乎看不见了,用户很容易误认为 “ 20份” .所以问题达到了不得不停下手上 ...

  3. hexdump——Linux系统的二进制文件查看工具

    hexdump是Linux下的一个二进制文件查看工具,可以将二进制文件转换为ASCII.10进制.16进制或8进制进行查看. 首先我们准备一个测试用的文件test,十六进制如下: 00 01 02 0 ...

  4. 用VS2010编写的C++程序,在其他电脑上无法运行,提示缺少mfc100.dll的解决办法

    问题: 在自己电脑上用VS2010编写的VC++程序(使用MFC库),不能在其他电脑上运行.双击提示: "无法启动此程序,因为计算机中丢失mfc100.dll 尝试重新安装该程序以解决此问题 ...

  5. php对象与数组互转

    //对象转数组 function objectToArray($obj){ $arr = is_object($obj) ? get_object_vars($obj) : $obj; if(is_a ...

  6. wampsever 数据库初体验

    Wamp就是Windos Apache Mysql PHP集成安装环境,即在window下的apache.php和mysql的服务器软件.PHP扩展.Apache模块,开启/关闭鼠标点点就搞定,再 也 ...

  7. Android项目无法运行的解决方法

    文件本身是否有问题 有两种方法可以判断:1.比较快捷的办法就是用解压软件打开或者解压的过程中有没有弹出什么错误提示,如果有错误提示那就重新下载一遍文件(javaapk用的压缩工具是winrar4.0, ...

  8. Book of Evil

    Codeforces Round #196 (Div. 2) D:http://codeforces.com/contest/337/status/D 题意:给你一个树,然后树中有一m个点,求到这m个 ...

  9. 在DJANGO的类视图中实现登陆要求和权限保护

    以前接触的是基于函数的保护,网上材料比较多. 但基于类视图的很少. 补上! Decorating class-based views 装饰类视图 对于类视图的扩展并不局限于使用mixin.你也可以使用 ...

  10. Hibernate 使用HQL的 in 时要注意判断in的值(list)是否包含数据

    如果你使用 HQL的 in,例如: sessionFactory.getCurrentSession() .createQuery("select hlInfo.id, count(id) ...