边框的属性主要有四个:颜色,颜色索引(无实际意义),线条类型,线条粗细。
获得一个单元格的边框信息可使用如下方式:
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)是一条实线,后者可以覆盖前者,但是前者无法覆盖后者。