C#中操作Excel的方法(二)之技巧篇

本来想写一个系列文章,系统介绍一下 C# 操作 Excel 。实在时间太紧张,加上看到 CSDN Blog 上面已经有不少介绍 C# 操作 Excel 的文章了,这里就记录一些小技巧吧。本篇文章以后应该还会更新,逐渐把遇到的一些 C# 操作 Excel 的小技巧都写进来。这种小技巧可能对于大多数人都意义不大,只是有用到的时候一时还不太好查,毕竟, C# 中操作 Excel 的许多方法和 VB/VBA 中已经大不相同了。呵呵,就不把它放到首页显示了吧。

1 :操作合并单元格

Range 的 Merge() 和 UnMerge() 方法大家想必熟悉了,此外 Range 对象还有两个成员属性 :

(1)MergeCells 属性 :bool 型 , 是否为合并单元格 . 在 C# 中 , 如果不是合并单元格 , 将产生异常。

(2)MergeArea 属性 : 对于合并单元格 , 将返回其合并单元格的 Range 对象。

如下方法可用于检查并填充 Excel 中的合并单元格:

static bool CheckRangIsMerge(Range rng)

{

bool bMerge= false ;

try

{

if (rng.MergeCells.ToString()== bool .TrueString)

{

bMerge= true ;

Excel.Range mrng=rng.MergeArea;

mrng.UnMerge();

for ( int i=0;i<mrng.Rows.Count;i++)

{

for ( int j=0;j<mrng.Columns.Count;j++)

{

rng.get_Offset(i,j).Value2=rng.Value2;

}

}

}

}

catch (Exception ex)

{

Console.WriteLine("Error:{0}",ex.Message.ToString());

bMerge= false ;

}

return bMerge;

}

注意:调用的时候,最好只传递一个单元格组成的 Range 。原因如下:如果 Range(A1,B1) 为合并单元格,则在检查 Range(A1,C1) 的 MergeCells 属性的时候,并不会得到 true 的结果。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus