边框的属性主要有四个:颜色,颜色索引(无实际意义),线条类型,线条粗细。
获得一个单元格的边框信息可使用如下方式:
BordersoBorders;
Border oBorder;
oBorders=oCurCell.GetBorders();
// Borders包含一个单元格的几种线条:上、下、左、右边,两条对角线
// 1左边
// 2右边
// 3上边
// 4下边
// 5斜下对角线
// 6斜上对角线
oBorder.AttachDispatch(oBorders.GetItem(2));
VARIANTvarLineStyle= oBorder.GetLineStyle(); //线条类型
VARIANTvarWeight= oBorder.GetWeight(); //线条粗细
VARIANTvarColor= oBorder.GetColor(); //线条颜色
VARIANTvarColorIndex= oBorder.GetColorIndex(); //颜色索引
设定一个单元格的边框也是这四个属性,可以根据边设置,使用下面方法:
BordersoBorders;
oBorders=oCurCell.GetBorders();
// Borders包含一个单元格的几种线条:上、下、左、右边,两条对角线
// 1左边
// 2右边
// 3上边
// 4下边
// 5斜下对角线
// 6斜上对角线
oBorder.AttachDispatch(oBorders.GetItem(2));
oBorder.SetLineStyle(varLineStyle);
oBorder.SetWeight(varWeight);
oBorder.SetColor(varColor);
oBorder.SetColorIndex(varColorIndex);
也可以使用BorderAround函数为单元格设置同样的边框。该函数的四个参数如下:
1.边框类型
2.边框粗细
3.颜色
4.颜色索引
有一点请注意:顺序在后的单元格边框会覆盖前面的边框。
下面说明LineStyle的值。下图是Excel设置LineStyle的界面,
我将从左至右,从上至下逐一说明。
序号 | LineStyle | Weight | Color |
1. | -4142 | 2 | 0 |
2. | 1 | 1 | 0 |
3. | -4118 | 2 | 0 |
4. | 5 | 2 | 0 |
5. | 4 | 2 | 0 |
6. | -4115 | 2 | 0 |
7. | 1 | 2 | 0 |
8. | 5 | -4138 | 0 |
9. | 13 | -4138 | 0 |
10. | 4 | -4138 | 0 |
11. | -4115 | -4138 | 0 |
12. | 1 | -4138 | 0 |
13. | 1 | 4 | 0 |
14. | -4119 | 4 | 0 |
注意:
我在实现的过程中发现几个与想象中不同的地方。
1.(-4142,2,0)应该是none,实际画出来会是一条黑色的实线,起关键作用的是Weight为2。
2.(1,1,0)是一条虚线,(1,2,0)是一条实线,后者可以覆盖前者,但是前者无法覆盖后者。