首页 > 解决方案 > EPPlus 获取 excel 行数和列数

问题描述

我有一个 excel 文件,它有 5 列和 5 行。

我正在使用 EPPlus (.net core c#) 来解析文件的内容。

我有下面的代码来计算行和列,然后解析这个 excel 文件的内容。

using (ExcelPackage package = new ExcelPackage(stream))
{    
    ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
    int rowCount = worksheet.Dimension.End.Row;
    int colCount = worksheet.Dimension.End.Column;

    for (int row = 1; row <= rowCount; row++)
    {
        for (int col = 1; col <= colCount; col++)
        {
            //Parse here
        }
    }
}

如上所述,使用 5 行和 5 列数据可以正常工作。

如果我更新并保存同一个文件,并删除说 3 行和 3 列。

现在,如果我再次阅读此文件,它仍然显示 5 列和行。不确定是否有另一种读取实际行和列的方法?

我在这里错过了什么吗?

标签: c#epplus

解决方案


尝试这个

    using (ExcelPackage package = new ExcelPackage(stream))
    {    
        string directoryServerPath = // your file saving path in server;

        if (!Directory.Exists(directoryServerPath))
          Directory.CreateDirectory(directoryServerPath);                     

        System.IO.DirectoryInfo directoryFiles = new DirectoryInfo(directoryServerPath);
        foreach (FileInfo file in directoryFiles.GetFiles())
        {
         file.IsReadOnly = false;
         file.Delete();
        }

        ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
        int rowCount = worksheet.Dimension.Rows;
        int colCount = worksheet.Dimension.Columns;

        for (int row = 1; row <= rowCount; row++)
        {
            for (int col = 1; col <= colCount; col++)
            {
                //Parse here
            }
        }

       package.SaveAs(new System.IO.FileInfo(directoryServerPath + fileName));
                    System.IO.File.SetAttributes(directoryServerPath + fileName, FileAttributes.ReadOnly);
    }

推荐阅读