POI設定單元格的寬度和高度

2021-07-03 11:10:45 字數 1261 閱讀 7704

npoi官方**:

在excel中,單元格的寬度其實就是列的寬度,因為excel假設這一列的單元格的寬度肯定一致。所以要設定單元格的寬度,我們就得從列的寬度下手,hssfsheet有個方法叫setcolumnwidth,共有兩個引數:乙個是列的索引(從0開始),乙個是寬度。

現在假設你要設定b列的寬度,就可以用下面的**:

hssfworkbook hssfworkbook = new hssfworkbook();

hssfsheet sheet1 = hssfworkbook.createsheet("sheet1");

sheet1.setcolumnwidth(1, 100 * 256);

這裡你會發現乙個有趣的現象,setcolumnwidth的第二個引數要乘以256,這是怎麼回事呢?其實,這個引數的單位是1/256個字元寬度,也就是說,這裡是把b列的寬度設定為了100個字元。

剛才說的是如何設定,那如何去讀取乙個列的寬度呢?直接用getcolumnwidth方法,這個方法只有乙個引數,那就是列的索引號。如下所示:

int col1width = sheet1.getcolumnwidth(1);

說完寬度,我們來說高度,在excel中,每一行的高度也是要求一致的,所以設定單元格的高度,其實就是設定行的高度,所以相關的屬性也應該在hssfrow上,它就是hssfrow.height和heightinpoints,這兩個屬性的區別在於heightinpoints的單位是點,而height的單位是1/20個點,所以height的值永遠是heightinpoints的20倍。

要設定第一行的高度,可以用如下**:

sheet1.createrow(0).height = 200*20;

或者

sheet1.createrow(0).heightinpoints = 200;

如果要獲得某一行的行高,可以直接拿hssfrow.height屬性的返回值。

你可能覺得一行一行設定行高或者一列一列設定列寬很麻煩,那你可以考慮使用hssfsheet.defaultcolumnwidth、hssfsheet.defaultrowheight和hssfsheet.defaultrowheightinpoints屬性。

一旦設定了這些屬性,如果某一行或者某一列沒有設定寬度,就會使用預設寬度或高度。**如下:

sheet1.defaultcolumnwidth=100*256;

sheet1.defaultrowheight=30*20;

poi單元格設定

poi中可能會用到一些需要設定excel單元格格式的操作小結 先獲取工作薄物件 hssfworkbook wb new hssfworkbook hssfsheet sheet wb.createsheet hssfcellstyle setborder wb.createcellstyle 一 設...

NPOI 單元格高度和寬度的值設定解釋

寬度 setcolumnwidth方法裡的第二個引數要乘以256,因為這個引數的單位是1 256個字元寬度,所以要乘以256才是一整個字元寬度。高度 height 屬性後面的值的單位是 1 20個點,所以要想得到乙個點的話,需要乘以20。heightinpoints後面的單位是點,可以不用乘。還可以...

SWT指定Table單元格的寬度和高度

import org.eclipse.jface.viewers.tableviewer import org.eclipse.swt.swt import org.eclipse.swt.widgets.event import org.eclipse.swt.widgets.listener i...