如何检查excel工作表是否已使用c#合并单元格

时间:2018-02-10 23:28:39

标签: c# .net-3.5

我想检查使用c#的excel工作表是否合并了我搜索过的单元格,并找到了许多讨论如何合并或未合并单元格的方法,或检查是否有像{{1}这样的工作表修复范围内的单元格我真正想要的是

检查所有工作表中是否有合并的单元格以及所有excel文件中的所有单元格,或者至少是我工作的工作表

感谢先进的帮助

2 个答案:

答案 0 :(得分:1)

您可能对使用以下方法感兴趣

Function CountMerged(pWorkRng As Range) As Long
'Updateby20140307
Dim rng As Range
Dim total As Long
Set dt = CreateObject("Scripting.Dictionary")
For Each rng In pWorkRng
    If rng.MergeCells Then
        TempAddress = rng.MergeArea.Address
        dt(TempAddress) = ""
    End If
Next
CountMerged = dt.Count
End Function

来源:https://www.extendoffice.com/documents/excel/1501-excel-count-merged-cells.html

希望这会对你有所帮助

答案 1 :(得分:0)

以下方法将有所帮助,它位于c#:

using Spire.Xls;

namespace Detect_Merged_Cells
{
    class Program
    {
        static void Main(string[] args)
        {
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("Sample.xlsx");
            Worksheet sheet = workbook.Worksheets[0];

            CellRange[] range = sheet.MergedCells;
            foreach (CellRange cell in range)
            {
                cell.UnMerge();
            }
            workbook.SaveToFile("Output.xlsx",ExcelVersion.Version2010);
        }
    }
}

以上解决方案基于第三方库 - Spire.XLS(您可以从nuget获取它并注意我为Spire工作)。有关更多信息,请查看此链接: https://www.e-iceblue.com/Tutorials/Spire.XLS/Spire.XLS-Program-Guide/Cells/How-to-detect-merged-cells-in-a-worksheet.html