Как получить точное количество используемого диапазона строк в Excel, используя Epplus? - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь получить общее количество строк, используемых в Excel, используя Epplus, но я не могу получить точное количество, и в число также входит ноль. Мне нужен только точный диапазон используемых ячеек.

эти строки кода я использую

FileInfo fileinfo = new FileInfo(fileName);
ExcelPackage p = new ExcelPackage(fileinfo);
ExcelWorksheet w = p.Workbook.Worksheets[1];
int Rmax = w.Dimension.End.Row;
int Cmax = w.Dimension.End.Column;
Console.WriteLine(Rmax);
Console.WriteLine(Cmax);

Ответы [ 2 ]

1 голос
/ 30 апреля 2019
   int count = Rmax * Cmax;
   int firstCellValue = 0;
   int lastCellValue = 0;

   for (int row = 1; row <= Rmax; row++) {
    for (int column = 1; column <= Cmax; column++) {
     if (string.IsNullOrEmpty(worksheet.Cells[row, column].GetValue<String>())) {
      count--;
     }
    }
   }

ОБНОВЛЕНИЕ

     int rowCount = Rmax;
     int count = Rmax * Cmax;
     string firstCellValue = string.Empty;
     string lastCellValue = string.Empty;

     for (int row = 1; row <= Rmax; row++) {
      bool foundValue = false;
      int leftIndex = 1;
      int rightIndex = Cmax;

      for (int column = 1; column <= Cmax; column++) {
       if (leftIndex == rightIndex) {
        if (!foundValue) {
         rowCount--;
         break;
        }
       }
       if (!string.IsNullOrEmpty(worksheet.Cells[row, column].GetValue < String > ())) {
        foundValue = true;
        firstCellValue = worksheet.Cells[row, column].ToString();
        leftIndex++;
       }
       if (!string.IsNullOrEmpty(worksheet.Cells[row, rightIndex].GetValue < String > ())) {
        foundValue = true;
        lastCellValue = worksheet.Cells[row, rightIndex].ToString();
        rightIndex--;
       }

      }


     }

     Console.WriteLine("firstCellValue" + firstCellValue);
     Console.WriteLine("lastCellValue" + lastCellValue);
     Console.WriteLine("Number of cells" + rowCount);
1 голос
/ 30 апреля 2019

Вы можете получить строки и столбцы из этих строк

using (ExcelPackage package = new ExcelPackage(stream))
{
    ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
    int rowCount = worksheet.Dimension.Rows;
    int colCount = worksheet.Dimension.Columns;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...