設置單元格的寬度和高度

 

NPOI官方網站:http://npoi.codeplex.com/post

 

在Excel中,單元格的寬度其實就是列的寬度,由於Excel假設這一列的單元格的寬度確定一致。因此要設置單元格的寬度,咱們就得從列的寬度下手,HSSFSheet有個方法叫SetColumnWidth,共有兩個參數:一個是列的索引(從0開始),一個是寬度。網站

如今假設你要設置B列的寬度,就能夠用下面的代碼:code

 

HSSFWorkbook hssfworkbook = new HSSFWorkbook();
HSSFSheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
sheet1.SetColumnWidth(1, 100 * 256);

這裏你會發現一個有趣的現象,SetColumnWidth的第二個參數要乘以256,這是怎麼回事呢?其實,這個參數的單位是1/256個字符寬度,也就是說,這裏是把B列的寬度設置爲了100個字符。索引

剛纔說的是如何設置,那如何去讀取一個列的寬度呢?直接用GetColumnWidth方法,這個方法只有一個參數,那就是列的索引號。以下所示:get

int col1width = sheet1.GetColumnWidth(1);

 

說完寬度,咱們來講高度,在Excel中,每一行的高度也是要求一致的,因此設置單元格的高度,其實就是設置行的高度,因此相關的屬性也應該在HSSFRow上,它就是HSSFRow.Height和HeightInPoints,這兩個屬性的區別在於HeightInPoints的單位是點,而Height的單位是1/20個點,因此Height的值永遠是HeightInPoints的20倍。it

要設置第一行的高度,能夠用以下代碼:class

sheet1.CreateRow(0).Height = 200*20;

 

或者方法

sheet1.CreateRow(0).HeightInPoints = 200;

若是要得到某一行的行高,能夠直接拿HSSFRow.Height屬性的返回值。項目

 

你可能以爲一行一行設置行高或者一列一列設置列寬很麻煩,那你能夠考慮使用HSSFSheet.DefaultColumnWidth、HSSFSheet.DefaultRowHeight和HSSFSheet.DefaultRowHeightInPoints屬性。di

一旦設置了這些屬性,若是某一行或者某一列沒有設置寬度,就會使用默認寬度或高度。代碼以下:

sheet1.DefaultColumnWidth=100*256;
sheet1.DefaultRowHeight=30*20;

 

相關範例請見NPOI 1.2正式版中的SetWidthAndHeightInXls項目

相關文章
相關標籤/搜索