转载:http://tonyqus.sinaapp.com/archives/516
很多人不怎么用Excel中的批注,所以我特地截了张图,让大家知道本节我们要创建的到底是什么东西。
在过去,我们恐怕没有办法实现这一功能,因为无论是cvs法、html法、oledb法都没有提供这样的接口,当然Office PIA法可以做到,但是性能实在太差,而且稳定性不好,经常莫名其妙crash(这是某某兄弟给我的反馈,我引用了下,呵呵)。在以后的教程中,你将看到更多在过去无法通过传统方法实现的东西,好戏才刚刚开始。
批注主要有三个属性需要设置,一个是批注的位置和大小、一个是批注的文本、还有一个是批注的作者。
批注的位置和大小,在Excel中是与单元格密切相关的,NPOI中通过HSSFClientAnchor的实例来表示,它的构造函数比较复杂,有8个参数,它们分别是
|
参数 |
说明 |
| dx1 | 第1个单元格中x轴的偏移量 |
| dy1 | 第1个单元格中y轴的偏移量 |
| dx2 | 第2个单元格中x轴的偏移量 |
| dy2 | 第2个单元格中y轴的偏移量 |
| col1 | 第1个单元格的列号 |
| row1 | 第1个单元格的行号 |
| col2 | 第2个单元格的列号 |
| row2 | 第2个单元格的行号 |
例如,如果我们打算让注释显示在B3和E5之间,就应该这么写:
HSSFPatriarch patr = sheet.CreateDrawingPatriarch(); HSSFComment comment1 = patr.CreateComment(new HSSFClientAnchor(0, 0, 0, 0, 1, 2 , 4, 4));
下面我们设置这个批注的内容和作者,这个比较简单:
comment1.String = new HSSFRichTextString("Hello World");
comment1.Author = "NPOI Team";
最后一步就是把批注赋给某个单元格:
HSSFCell cell = sheet.CreateRow(1).CreateCell(1); cell.CellComment = comment1;
对于批注,你有两种选择,一种是隐藏(默认),一种是显示(即表单一打开就显示该批注),可以通过comment1.Visible属性来控制。
看了上面这张图大家就应该明白了,这里有2个批注,下面那个是显示的,上面那个是隐藏的。


杭州格原