【问题标题】:how to check if excel worksheet has merged cells using c#如何使用c#检查excel工作表是否已合并单元格
【发布时间】:2018-02-10 23:28:39
【问题描述】:

我想检查使用 c# 的 excel 工作表是否已合并单元格我搜索并找到了许多谈论如何合并或取消合并单元格的方法,或者检查工作表的固定范围内是否有单元格,例如 [a1:100] 我实际上是什么想要的是

检查所有工作表中是否有任何合并的单元格和所有 Excel 文件中的所有单元格,或者至少是我正在工作的工作表

感谢高级帮助

【问题讨论】:

    标签: c# .net-3.5


    【解决方案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

    希望对你有帮助

    【讨论】:

    • 对此使用字典的有趣想法。我喜欢它。
    【解决方案2】:

    以下方法会有所帮助,并且在 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);
            }
        }
    }
    

    上述解决方案基于第 3 方库 - 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 2013-01-14
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 2017-12-17
      相关资源
      最近更新 更多