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项目