小工具知识网

当前位置: 首页 > 行业知识 > 使用vsto获取Excel 工作表中实际使用的最大行和最大列

行业知识

使用vsto获取Excel 工作表中实际使用的最大行和最大列

2026-10-26 20:49:17 来源:互联网转载

在使用 C# 和 VSTO (Visual Studio Tools for Office) 处理 Excel 工作表时,usedRange.Address 有时确实不会总是从 A1 开始。然而,通过 usedRange 的 Rows 和 Columns 属性,可以准确地获取工作表中实际使用的最大行和最大列。以下是一个示例代码,演示如何使用这些属性来获取工作表中实际使用的最大行和最大列:

()

csharp

using Excel = Microsoft.Office.Interop.Excel;

()

class ExcelUtils

{

    public static (int maxRow, int maxColumn) GetMaxRowAndColumn(Excel.Worksheet worksheet)

    {

        // 获取使用的范围

        Excel.Range usedRange = worksheet.UsedRange;

        

        // 获取使用范围的行数和列数

        int maxRow = usedRange.Rows.Count;

        int maxColumn = usedRange.Columns.Count;

        

        // 返回实际使用的最大行和最大列

        return (maxRow, maxColumn);

    }

}

在这个示例中:

1. 使用 worksheet.UsedRange 获取工作表中实际使用的范围。

2. 通过 usedRange.Rows.Count 获取使用范围的行数。

3. 通过 usedRange.Columns.Count 获取使用范围的列数。

4. 返回的元组包含最大行数 (`maxRow`) 和最大列数 (`maxColumn`)。

请注意,UsedRange 的 Rows 和 Columns 属性返回的是相对的行数和列数,意味着它们基于使用范围的起始单元格。如果需要绝对的最大行和最大列,需要考虑 UsedRange 的起始行和起始列。

下面是修改后的代码,考虑了 UsedRange 的起始行和起始列:csharp

using Excel = Microsoft.Office.Interop.Excel;class ExcelUtils{    public static (int maxRow, int maxColumn) GetMaxRowAndColumn(Excel.Worksheet worksheet)    {        // 获取使用的范围        Excel.Range usedRange = worksheet.UsedRange;                // 获取使用范围的起始行和起始列        int startRow = usedRange.Row;        int startColumn = usedRange.Column;                // 计算实际使用的最大行和最大列        int maxRow = startRow + usedRange.Rows.Count - 1;        int maxColumn = startColumn + usedRange.Columns.Count - 1;                // 返回实际使用的最大行和最大列        return (maxRow, maxColumn);    }}

在这个版本中,我们首先获取 UsedRange 的起始行和起始列,然后加上相对的行数和列数,减去 1 得到绝对的最大行和最大列。

这样,可以准确地获取 Excel 工作表中实际使用的最大行和最大列。

上一篇:cs社区服务器怎么进去?

下一篇:Java Bitset源码深度解析与实现探究