jxl自動設置列寬


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


因而,我試着這樣用:
Java代碼 複製代碼 收藏代碼
  1. ... ...
  2. //設置字體爲Arial,30號,加粗
  3. CellView cellView = new CellView();
  4. cellView.setAutosize(true); //設置自動大小
  5. sheet.setColumnView(1, cellView);//根據內容自動設置列寬
  6. label = new Label(1, 0, "zzzzzzzzzzzzzzzzzzzzzz");
  7. sheet.addCell(label);
  8. ... ...
... ...
//設置字體爲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,則是一個字符的長度

因而,我試着這樣用:
Java代碼 複製代碼 收藏代碼
  1. ... ...
  2. //設置字體爲Arial,30號,加粗
  3. label = new Label(1, 0, "zzzzzzzzzzzzzzzzzzzzzz");
  4. sheet.addCell(label);
  5. sheet.setColumnView(1, new String("zzzzzzzzzzzzzzzzzzzzzz").length());
  6. ... ...
... ...
//設置字體爲Arial,30號,加粗
label = new Label(1, 0, "zzzzzzzzzzzzzzzzzzzzzz");
sheet.addCell(label);
sheet.setColumnView(1, new String("zzzzzzzzzzzzzzzzzzzzzz").length());
... ...
發現效果一樣實現了自動調整列寬。
相關文章
相關標籤/搜索