2009-09-30 238 views
2

VSTO(/ JET OLEDB或其他讀取excel文件的方法)是否有任何方法來判斷數據是來自單個單元格還是合併的單元格範圍並獲取此範圍?VSTO合併單元格

回答

0

這裏最短的路線是利用布爾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. 
} 

你也可以檢查Cells.CountRange.MergeArea屬性返回的範圍:

if (myCell.MergeArea.Cells.Count > 1) {...} 

或:

if (myCell.MergeArea.Count > 1) {...} 

最後一個示例的工作原理是,Range.Count屬性總是返回與Range.Cells.Count相同的值,具體設計如下。

0

假設您使用的方法可以調用&使用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代碼應該非常相似。

+0

這是非常有趣的,我會檢查解決方案,並標記爲答案,如果它做的工作。 – Jacob 2009-09-30 18:18:44