如何使用 OpenXML 获取 Excel 工作表的使用范围?

How can I get an Excel worksheet's used range with OpenXML?

我需要在新工作表中获取已使用的单元格区域。例如:

A1:AY55

在ExcelVBA中,这可以通过恰当命名的UsedRange属性获得。 OpenXML 中是否有等效项?

它可以在 SheetDimension class 中找到,它可以作为 Worksheet 的 属性 找到。以下代码将使用的范围写入控制台:

using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(filename, false))
{
    WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
    //get the correct sheet
    Sheet sheet = workbookPart.Workbook.Descendants<Sheet>().Where(s => s.Name == "Sheet1").First();
    WorksheetPart worksheetPart = workbookPart.GetPartById(sheet.Id) as WorksheetPart;
    Console.WriteLine(worksheetPart.Worksheet.SheetDimension.Reference);
}