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

橡木疙瘩 2013-06-03 11:47:07
用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>),应该如何解决?

  程序事先不知道哪些单元格被合并了。
...全文
134 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010955452 2013-06-04
  • 打赏
  • 举报
回复
Range.MergeArea属性返回一个Range对象,该对象标识了单元格所在的合并区域。如果该单元格没有被合并,则返回的Range只包含这一个单元格。 Range.Cell[1,1]返回该区域最左上的单元格,合并区域的内容就是被写到这个单元格。
u010955452 2013-06-04
  • 打赏
  • 举报
回复
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();

6,210

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office应用
社区管理员
  • Microsoft Office应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧