设置单元格的宽度和高度

摘要:
单元格的宽度实际上是列的宽度,因为Excel假定此列中单元格的宽度必须一致。所以你需要设置单元格的宽度。现在假设您要设置B列的宽度。此参数的单位是1/256个字符的宽度。这里,列B的宽度设置为100个字符。如何读取列的宽度?因此,设置单元格的高度实际上就是设置行的高度。如果行或列未设置宽度,则将使用默认宽度或高度。
 

NPOI官方网站:http://npoi.codeplex.com/

在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;

相关范例请见NPOI 1.2正式版中的SetWidthAndHeightInXls项目

免责声明:文章转载自《设置单元格的宽度和高度》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Qt之getOpenFileName,getSaveFileName,getOpenFileNamesWeblogic的安装、配置与应用部署下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

利用 ADO.NET 连接到 Informix(转)

从 Connection 到强类型 DataSet 文档选项 打印本页 将此页作为电子邮件发送 未显示需要 JavaScript 的文档选项 讨论 样例代码 级别: 中级 Sean R. Durity (sdurity@cornercap.com), IT 管理人员, Co...

静态代码块

static {//静态代码块 }   关于静态代码块,要注意的是: 它是随着类的加载而执行,只执行一次,并优先于主函数。具体说,静态代码块是由类调用的。类调用时,先执行静态代码块,然后才执行主函数的。 静态代码块其实就是给类初始化的,而构造代码块是给对象初始化的。 静态代码块中的变量是局部变量,与普通函数中的局部变量性质没有区别。 一个类中可...

ASP.NET(C#)实现一次性上传多张图片(多个文件)

在做asp.net的Web开发的时候,我们经常会遇到一次性上传多个文件的需求。通常我们的解决方法是固定放多个上传文件框,这样的解决办法显然是不合理的,因为一次上传多个,就意味着数量不确定。因此我们就要让这些文件上传框动态添加,下面我以我做的一个图库管理中的上传图片的功能为例 先看效果: 打开的初始界面: 默认是上传一个图片,但当我们点“增加图片”按钮时可以...

15分钟让你了解如何实现并发中的Barrier

说到Barrier,很多语言中已经是标准库中自带的概念,一般情况下,只需要直接使用就行了。而最近一些机缘巧合的机会,我需要在c++中使用这么个玩意儿。但是c++标准库里还没有这个概念,只有boost里面有这样现成的东西,而我又不想为了这么一个小东西引入个boost。所以,我借着这个机会研究了下,发现其实这些多线程/并发中的东西还是蛮有意思的。 阅读本文你可...

探索MVP(Model-View-Presenter)设计模式在SharePoint平台下的实现

探索MVP(Model-View-Presenter)设计模式在SharePoint平台下的实现  对于SharePoint Developers来说,往往会过多的去关注SharePoint平台和工具,而把设计模式和代码的可测试性放在了一个较低的优先级。这并不是说SharePoint Developers对设计模式不感兴趣,而是缺乏在SharePoint...

Jmeter JAVA请求入门

一、Jmeter完成一个java请求实现方法 两种实现方式: 实现JavaSamplerClient接口 继承AbstractJavaSamplerClient抽象类 二、使用AbstractJavaSamplerClient抽象类编写java程序 1、核心步骤 1)创建一个Maven工程; 2)本地Maven库路径确认,添加pom.xml内容,编写依赖的...