簡體   English   中英

如何獲取合並的Excel單元格的大小

[英]How do I get the size of a merged Excel cell

我正在嘗試用C#編寫代碼來解析一個大型Excel工作表,該工作表並非真正出於自動化目的而設計的,它充滿了合並的單元格。 很多時候,我知道一個單元格的位置,但是需要將另一個單元格的文本移到幾個單元格之外,但是這些單元格可能會合並並跨越多個普通單元格。 如何獲得合並單元的數量(以單元數為單位)?

另外,合並之間的單元格時,如何將某個單元格的位置移開一定數量的單元格? 我嘗試了Excel.Range.Offset,但是那似乎只是在計算真實單元格,而不是合並單元格(因此,如果之間有一個4寬的合並單元格,則偏移量2會將我帶到該單元格的中間,而不是其中一個在它的旁邊)。

您可以使用以下代碼來確定合並區域的大小:

    var activeSheet = this.Application.ActiveSheet as Excel.Worksheet;
    if (activeSheet != null)
    {
        var activeCell = activeSheet.Cells[2, 2];
        if (activeCell.MergeCells)
        {
            if (activeCell.MergeArea != null)
            {
                dynamic mergeAreaValue2 = activeCell.MergeArea.Value2;
                object[,] vals = mergeAreaValue2 as object[,];

                if (vals != null)
                {                            
                    int rows = vals.GetLength(0);
                    int cols = vals.GetLength(1);
                }                        
            }
        }
    }

假設Cells[2,2]位於合並區域的左上角。 在變量中,row和cols將是合並區域中行和列的數量-因此,這是對應跳過多少行或列的問題的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM