c# - 使用 C# 在 Excel 中查找最后使用的行

标签 c# add-in worksheet excel

<分区>

Possible Duplicate:
How to get the range of occupied cells in excel sheet

我试图在 Excel 工作表中查找最后使用的行。为此,我使用了这段代码:

int lastUsedRow = currentWS.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell,Type.Missing).Row;

大多数情况下它工作正常,但有时 Excel 认为工作表中的行数比预期的多。

Fx:如果我将包含 12 行的 sheet1 中的数据复制到一个空的 sheet2,然后通过右键单击并按“删除...”删除 sheet2 中的所有数据,然后从包含 5 行的 sheet3 中复制数据到sheet2,然后 lastUsedRow 会给我 12 的值,它应该是 5。

enter image description here 上面的图像示例假定我的行数为 22,但我会得到 634。请注意右侧的滚动条。

即使我刚刚删除了所有单元格,但在将行数较少的新数据复制到工作表之前,Excel 似乎认为某些单元格已填满。

是否有任何方法可以“调整”工作表中数据 View 的大小,以便获得正确数量的已用单元格,或者可以通过其他方式找到最后使用的行数?

谢谢。

最佳答案

编辑:新解决方案

因为 Joe 提供了正确的代码来获取最后使用的行。

Worksheet.UsedRange.Row + Worksheet.UsedRange.Rows.Count - 1 

并使用以下命令清除内容和格式

Selection.Delete
Selection.ClearFormats

这应该有效;)

关于c# - 使用 C# 在 Excel 中查找最后使用的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12276745/

相关文章:

c# - 页面在 localhost 上加载,但不在 Azure 网站中加载 - 错误 500

visual-studio - Visual Studio 2008 加载项检查层次结构项是否为解决方案文件夹

c# - MVC 5 - 如何首先使用 EF 代码更新关系表

c# - 带接口(interface)的访问修饰符

c# - 强制 HttpWebRequest 发送客户端证书

excel - 如何循环浏览工作表的子集?

javascript - 如何在打开关闭工作簿(Excel 的 Office.js API)之间保留工作表的设置?

.net - .NET 应用程序的插件框架

c# - Word 加载项 : Getting user credentials which were used to open the document from SharePoint

.net - EPPlus - 使用条件格式复制工作表时出错