您的位置:首页 > 娱乐 > 八卦 > 使用vsto获取Excel 工作表中实际使用的最大行和最大列

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

2024/10/6 14:28:21 来源:https://blog.csdn.net/nbspzs/article/details/139153779  浏览:    关键词:使用vsto获取Excel 工作表中实际使用的最大行和最大列

在使用 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 工作表中实际使用的最大行和最大列。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com