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

本來想寫一個系列文章,系統介紹一下C#操作Excel。實在時間太緊張,加上看到CSDN Blog上面已經有不少介紹C#操作Excel的文章了,這裏就記錄一些小技巧吧。本篇文章以後應該還會更新,逐漸把遇到的一些C#操作Excel的小技巧都寫進來。這種小技巧可能對於大多數人都意義不大,只是有用到的時候一時還不太好查,畢竟,C#中操作Excel的許多方法和VB/VBA中已經大不相同了。呵呵,就不把它放到首頁顯示了吧。

1
:操作合併單元格<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

RangeMerge()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的結果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章