Чтение данных в файлах Excel с помощью C#

Файлы MS Excel широко используются для хранения данных в виде строк и столбцов. В некоторых случаях большие наборы данных также хранятся в файлах Excel. Часто вам приходится читать файлы Excel и извлекать данные из приложений .NET. Чтобы добиться этого за несколько простых шагов, в этой статье показано, как читать файл Excel на C#. В частности, он описывает, как читать из него весь файл Excel или только один рабочий лист.

Библиотека C# для чтения файлов Excel

Для чтения данных с рабочих листов мы будем использовать Aspose.Cells for .NET. Это мощный и многофункциональный API для создания файлов Excel и управления ими. Более того, он позволяет довольно легко читать файлы Excel. API можно загрузить из раздела загрузок или установить через NuGet.

PM> Install-Package Aspose.Cells

Чтение файла Excel на С#

В файлах Excel данные хранятся внутри ячеек, где каждая ячейка идентифицируется своим именем (A1, B3 и т. д.) или индексом строки и столбца. Набор ячеек составляет рабочий лист, а файл Excel может содержать один или несколько рабочих листов. Наконец, все рабочие листы вместе образуют рабочую книгу. Aspose.Cells для .NET использует те же соглашения об именах для управления файлами Excel.

Ниже приведены шаги для чтения файла Excel и печати его данных с помощью C#.

  • Загрузите файл Excel, используя класс Workbook.
  • Создайте объект класса WorksheetCollection и получите ссылку на рабочие листы, используя Workbook.Worksheets.
  • Запустите цикл, чтобы просмотреть все рабочие листы в коллекции, и в каждой итерации выполните следующие шаги:
    • Получить ссылку на рабочий лист в объекте Worksheet.
    • Получить количество строк и столбцов данных на листе.
    • Начать цикл для строк.
    • Запустите вложенный цикл для столбцов.
    • Считайте данные из каждой ячейки, используя свойство Worksheet.Cells[i, j].Value.

В следующем примере кода показано, как читать файл Excel на C#.

// Загрузить файл Excel
Workbook wb = new Workbook("excel.xlsx");

// Получить все рабочие листы
WorksheetCollection collection = wb.Worksheets;

// Перебрать все рабочие листы
for (int worksheetIndex = 0; worksheetIndex < collection.Count; worksheetIndex++)
{

    // Получить рабочий лист, используя его индекс
    Worksheet worksheet = collection[worksheetIndex];

    // Печать имени рабочего листа
    Console.WriteLine("Worksheet: " + worksheet.Name);

    // Получить количество строк и столбцов
    int rows = worksheet.Cells.MaxDataRow;
    int cols = worksheet.Cells.MaxDataColumn;

    // Цикл по строкам
    for (int i = 0; i < rows; i++)
    {

        // Перебрать каждый столбец в выбранной строке
        for (int j = 0; j < cols; j++)
        {
            // Значение ячейки Pring
            Console.Write(worksheet.Cells[i, j].Value + " | ");
        }
        // Распечатать разрыв строки
        Console.WriteLine(" ");
    }
}

Ниже приведен вывод, который мы получаем в консоли после запуска приведенного выше примера кода.

Чтение данных на листах файла Excel в С#

Чтение файла Excel в C#

Прочитайте конкретный рабочий лист в Excel на С#

Вы также можете прочитать только определенный рабочий лист в файле Excel, выполнив следующие действия.

  • Загрузите файл Excel, используя класс Workbook.
  • Получите ссылку на нужный рабочий лист в объекте Worksheet, используя Workbook.Worksheets[index].
  • Получить количество строк и столбцов данных на листе.
  • Начать цикл для строк.
  • Запустите вложенный цикл для столбцов.
  • Считайте данные из каждой ячейки, используя свойство Worksheet.Cells[i, j].Value.

В следующем примере кода показано, как считывать данные с определенного рабочего листа в C#.

// Загрузить файл Excel
Workbook wb = new Workbook("excel.xlsx");

// Получить рабочий лист, используя его индекс
Worksheet worksheet = wb.Worksheets[0];

// Печать имени рабочего листа
Console.WriteLine("Worksheet: " + worksheet.Name);

// Получить количество строк и столбцов
int rows = worksheet.Cells.MaxDataRow;
int cols = worksheet.Cells.MaxDataColumn;

// Цикл по строкам
for (int i = 0; i < rows; i++)
{
    // Перебрать каждый столбец в выбранной строке
    for (int j = 0; j < cols; j++)
    {
        // Значение ячейки Pring
        Console.Write(worksheet.Cells[i, j].Value + " | ");
    }
    // Распечатать разрыв строки
    Console.WriteLine(" ");
}

Получите бесплатную лицензию API

Вы можете использовать Aspose.Cells для .NET без ограничений по ознакомительной версии, получив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как динамически читать файлы Excel на C#. С помощью примеров кода вы увидели, как считывать данные с определенного листа или всех листов в книге Excel. Кроме того, вы можете изучить другие функции Aspose.Cells для .NET, используя документацию. Если у вас возникнут какие-либо вопросы, сообщите нам об этом через наш форум.

Смотрите также