VSTO合并单元格
在VSTO(/ JET OLEDB或其他读取excel文件的方法)中有任何方法来判断数据是来自单个单元格还是合并的单元格范围,并得到这个范围?
这里最短的路线是使用Boolean Range.MergeCells
属性。
假设你的单元格引用被命名为myCell
,你可以使用类似于:
if (myCell.MergeCells) { // The 'myCell' is part of a merged cell area. } Else { // The 'myCell' is not part of any merged cell area. }
您也可以检查Range.MergeArea
属性返回的Range上的Range.MergeArea
:
if (myCell.MergeArea.Cells.Count > 1) {...}
要么:
if (myCell.MergeArea.Count > 1) {...}
最后一个例子是因为Range.Count属性总是返回与Range.Cells.Count相同的值。
假设您使用可以调用和使用Excel对象模型的方法,请检查单元格的MergeArea属性以查看它是否包含该单元格以外的任何内容。 如果是这样,则该单元是MergeArea的一部分。 以下是我在VBA中完成的工作:
IF CurrCell.MergeArea.Rows.Count > 1 Or CurrCell.MergeArea.Columns.Count > 1 Then 'CurrCell is part of a MergeArea... '
等效的C#VSTO代码应该非常相似。