外部程序如何通过任一“被合并的单元格”读取合并单元格的内容

外部程序如何通过任一“被合并的单元格”读取合并单元格的内容

用C#读取某些Excel文件中的数据时,遇到这样一个情况:
  原始数据文件(xsl)中有一些表格,在同一行中多列数据相同时,相同数据的单元格会被合并,只录入一项数据。现在我要用C#读取Excel文件中的数据并转存到数据库中,需要在访问每一列时都能读到这一数据,而不是只在读第一列时读到它,读其它列时都为空。

  举例来说:

  A2:"abc"; B2:"def",C2:"xyz",D2:"uvw"
   
    A3:"123";D3:<null>

    其中A3、B3、C3被合并了。

  现在我要读出:("abc","123"),("def","123"),("xyz","123"),("uvw",<null>)四组数据,如果直接读单元格数据的话结果却是:("abc","123"),("def",<null>),("xyz",<null>),("uvw",<null>),应该如何解决?

  程序事先不知道哪些单元格被合并了。

Excel.Range aRange = (Excel.Range)(mySheet.Cells[row, col]);
Excel.Range mergeArea = aRange.MergeArea;
aRange = (Excel.Range)(mergeArea.Cells[1, 1]);
string areaText = aRange.Text.ToString();

Range.MergeArea属性返回一个Range对象,该对象标识了单元格所在的合并区域。如果该单元格没有被合并,则返回的Range只包含这一个单元格。
Range.Cell[1,1]返回该区域最左上的单元格,合并区域的内容就是被写到这个单元格。

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有