网上看到有这样的说法:
jxl中有自动设置行高的方法,jxl的API中有这样的方法:
引用
setRowView
void setRowView(int row,
boolean collapsed)
throws jxl.write.biff.RowsExceededExceptionSets the properties of the specified row
Parameters:
row - the row to be formatted
collapsed - indicates whether the row is collapsed
Throws:
jxl.write.biff.RowsExceededException
setRowView
void setRowView(int row,
CellView view)
throws jxl.write.biff.RowsExceededExceptionSets the view for this column
Parameters:
row - the column on which to set the view
view - the view to set
Throws:
jxl.write.biff.RowsExceededException
我们只需要如下调用即可将行高自动根据字体大小进行调整:
... ...
//设置字体为Arial,30号,加粗
WritableFont font = new WritableFont(WritableFont.ARIAL, 30 ,WritableFont.BOLD);
WritableCellFormat format = new WritableCellFormat(font);
//第一行第一列
jxl.write.Label label = new jxl.write.Label(0, 0, "Hello", format);
sheet.addCell(label);
sheet.setRowView(0,false);//第0行,行高自动扩展
... ...
但是,我测试发现这绝对是谬论,该方法实际效果是:设置行高为409.5,并设置为隐藏,即将该行隐藏,而且这个方法貌似有bug,第二个参数无论你设置true还是false,实际效果都隐藏该行。
但是,jxl中并没有提供类似setRowView(int row, boolean collapsed)的自动设置列宽的方法
但是,我们可以通过它的其他API来实现这样的效果:
方法一:
jxl的API中有这样的方法:
引用
setColumnView
void setColumnView(int col,
CellView view)Sets the view for this column
Parameters:
col - the column on which to set the view
view - the view to set
而在API中查找到CellView 有这个方法:
引用
setAutosize
public void setAutosize(boolean a)Sets the autosize flag. Currently, this only works for column views
Parameters:
a - autosize
于是,我试着这样用:
... ...
//设置字体为Arial,30号,加粗
CellView cellView = new CellView();
cellView.setAutosize(true); //设置自动大小
sheet.setColumnView(1, cellView);//根据内容自动设置列宽
label = new Label(1, 0, "zzzzzzzzzzzzzzzzzzzzzz");
sheet.addCell(label);
... ...
发现效果确实是实现了自动调整列宽。
方法二:
jxl的API中有与上面同名的方法:
引用
setColumnView
void setColumnView(int col,
int width)Sets the width of the column on this sheet, in characters. This causes Excel to resize
the entire column. If the columns specified already has view information associated with it, then it is replaced by
the new data
Parameters:
col - the column to be formatted
width - the width of the column
方法的第二个参数就是自己设置列宽
因此,我们可以先计算我们写入的字符串的长度,然后以这个长度作为列宽来设置,同样达到自动调整列宽的效果!
jxl中列宽值是以字符来算的,也就是列宽为1,则是一个字符的长度
于是,我试着这样用:
... ...
//设置字体为Arial,30号,加粗
label = new Label(1, 0, "zzzzzzzzzzzzzzzzzzzzzz");
sheet.addCell(label);
sheet.setColumnView(1, new String("zzzzzzzzzzzzzzzzzzzzzz").length());
... ...
发现效果同样实现了自动调整列宽。
分享到:
相关推荐
jxl页面设置 jxl中一些常用的页面设置
java操作修饰Excel字体大小单元格背景色合并单元格设置列宽
JXL操作excel 字体 颜色 设置单元格 详解
NULL 博文链接:https://kunzhong1-yeah-net.iteye.com/blog/1776766
java报表JXL和POI打印设置
例子如下: Object是一个对象实体类,如Studnet.java. List 是一个对象集合,后面的是输出路径. WriteExcel rw=new WriteExcel(); rw.writeExcel(new Object(), List, "f:/a.xls","库存表");...
用jxl.jar包,读写过Excel文件。也没有注意最适合列宽的问题,但是jxl.jar没有提供最适合列宽的功能,上次用到写了一下,可以基本实现最适合列宽。
JXL教程 JXL开发文档 JXL学习笔记 JXL示例。
jxl对excel添加水印(含有setWaterMarkImage方法).zip
jxl操作 jxl操作 jxl操作 jxl操作 jxl操作 jxl操作
jxl数据导入导出jxl数据导入导出jxl数据导入导出 jxl数据导入导出jxl数据导入导出jxl数据导入导出
本例优点运行main方法即可到指定路径看到效果。 jxl创建Excel例子,包含创建合并单元格、设置列/单元格属性(字体、宽、高、边框、背景色、自动换行、水平 垂直对齐方式等)。
java语言操纵excel文档。以及jxl的帮助文档
java中通过jxl写excel文件并且设置excel字体样式、表格等
jxl api说明文档 不包含pai包
jxl创建下拉列表,使用Java来操作EXCEL,创建下拉列表
java实现数据的导入与导出依赖包 jxl.jar
jxl操作excel实例,jxl jar包下载 jxl操作excel实例,jxl jar包下载 jxl操作excel实例,jxl jar包下载
java报表JXL和POI打印设置 设置打印,非常好用 一般文档没有 绝版
jxl操作excel说明以及jxl jar包