c# - 使用 Microsoft.Office.Interop.Excel 读取所有行和列

标签 c# excel

我有 4 列 4 行的 Excel 工作表。当我使用 Microsoft.Office.Interop.Excel.WorkSheet 读取列和行 Count 时,行数和列数分别为 1048576 行和 16384 列。计数必须行为 4,列为 4。我错过了什么?

            ApplicationClass excelApp = null;
            Workbook myWorkBook = null;
            Worksheet mySheet = null;
            Range dataRange = null;
            excelApp = new ApplicationClass();
            myWorkBook = excelApp.Workbooks.Open(@"C:\Users\Dev2Admin\Desktop\Employees.xlsx");
            mySheet = (Worksheet)myWorkBook.Sheets["Sheet1"];


            for (int row = 1; row < mySheet.Rows.Count; row++) // Count is 1048576 instead of 4
            {
                for (int col = 1; col < mySheet.Columns.Count; col++) // Count is 16384 instead of 4
                {
                    dataRange = (Range)mySheet.Cells[row, col];
                    Console.Write(String.Format(dataRange.Value2.ToString() + " "));
                }
                Console.WriteLine();
            }

最佳答案

您省略了 UsedRange 属性,在您的工作表上正确使用的列或行计数如下所示:

  int totalColumns = mySheet.UsedRange.Columns.Count;
  int totalRows = mySheet.UsedRange.Rows.Count;

关于c# - 使用 Microsoft.Office.Interop.Excel 读取所有行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25833425/

相关文章:

c# - Winforms 中禁用的菜单项仍然显示子项

c# - Entity Framework where、order 和 group

c# - 错误 : Index was outside the bounds of the array in a data set C# and T-SQL

vba - 获取文件上次修改日期(资源管理器值而不是cmd值)

excel - 如何使用 VBA 或宏将 Outlook 邮件消息复制到 Excel 中

c# - 替换字符串中的 Unicode 转义序列

c# - 如何正确设置执行子 powershell 脚本的路径?

vba - 如何使用变量作为 vba 中 sumifs 公式的标准

c# - 通过 OleDb 使用 Microsoft Access 数据库引擎将 DataTable 插入 Excel

excel - 在数字和文本之间添加空格