首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用DocumentFormat.OpenXML或ClosedXML C#从Excel中获取合并单元格

如何使用DocumentFormat.OpenXML或ClosedXML C#从Excel中获取合并单元格
EN

Stack Overflow用户
提问于 2022-01-18 03:37:55
回答 2查看 264关注 0票数 0

我需要获得合并单元格的面积,在Excel中仅使用DocumentFormat.OpenXml或ClosedXML结束该区域的行号,如何对每个单元格执行此操作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-18 11:25:43

使用ClosedXML,这可以通过以下方法来完成:

代码语言:javascript
运行
复制
var ws = workbook.Worksheet("Sheet 1");
var cell = ws.Cell("A2");
var mergedRange = cell.MergedRange();
var lastCell = mergedRange.LastCell();

// or 
var lastCellAddress = mergedRange.RangeAddress.LastAddress;
票数 0
EN

Stack Overflow用户

发布于 2022-01-18 05:44:11

我觉得这个有点笨重,但我相信这是正确的方法。

代码语言:javascript
运行
复制
private static void GetMergedCells()
{
    var fileName = $"c:\\temp\\Data.xlsm";

    // Open the document.
    using (SpreadsheetDocument document = SpreadsheetDocument.Open(fileName, false))
    {
        // Get the WorkbookPart object.
        var workbookPart = document.WorkbookPart;

        // Get the first worksheet in the document.  You can change this as need be.
        var worksheet = workbookPart.Workbook.Descendants<Sheet>().FirstOrDefault();

        // Retrieve the WorksheetPart using the Part ID from the previous "Sheet" object.
        var worksheetPart = (WorksheetPart)workbookPart.GetPartById(worksheet.Id);

        // Retrieve the MergeCells element, this will contain all MergeCell elements.
        var mergeCellsList = worksheetPart.Worksheet.Elements<MergeCells>();

        // Now loop through and spit out each range reference for the merged cells.
        // You'll need to process the range either as a string or turn it into another
        // object that gives you the end row.
        foreach (var mergeCells in mergeCellsList)
        {
            foreach (MergeCell mergeCell in mergeCells)
            {
                Console.WriteLine(mergeCell.Reference);
            }
        }
    }
}

如果您还不知道,这是使用DocumentFormat.OpenXml.Spreadsheet

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70750016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档