Чтение данных Excel в C#

Чтобы прочитать данные Excel, вы можете открыть приложение Excel и использовать его в качестве сервера для управления книгами Excel.

Сначала откройте диалоговое окно «Добавить ссылки». На вкладке COM выберите «Библиотека объектов Microsoft Excel 14.0» (или любую другую версию, которую вы установили в своей системе).

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

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

Сначала код создает объект Excel.Application для управления Excel. Это делает этот объект видимым, чтобы вы могли наблюдать за его работой. Часто вы не хотите, чтобы сервер был видимым.

Далее код открывает рабочую книгу. Большинство параметров метода Open являются необязательными (например, пароли), поэтому они передают значения Type.Missing. В этом примере рабочая книга доступна только для чтения (это единственный параметр true), потому что ее не нужно записывать в книгу.

В коде используется первый рабочий лист книги. Обратите внимание, что индексы в Excel имеют тенденцию начинаться с 1 не 0.

В коде используется первый рабочий лист книги. Обратите внимание, что индексы в Excel имеют тенденцию начинаться с 1 не 0.

...

Метод SetTitleAndListValues довольно специфичен для этого примера. Он получает заголовок из ячейки и получает значения из ячеек ниже этого.

Сначала код получает Range, представляющий ячейку заголовка. Он использует свойство Range объекта Value2 для получения текста заголовка. Он преобразует значения Range объектов Font.Color и Interior.Color в объекты .NET Color и использует их для цвет заголовка Ярлык.

Далее код получает значения под заголовком. Сначала он получает Range, представляющий весь столбец. Затем он использует метод range объекта get_End для получения диапазона, представляющего последнюю использованную ячейку столбца. Затем код создает другой Range, представляющий первую ячейку, содержащую значения, и использует две ячейки для получения еще одного нового Range, представляющего все ячейки значений. (Это проще, если вы знаете, где ячейки впереди времени, поэтому вам не нужно путаться, пытаясь найти последнюю ячейку.)

Далее код получает значения под заголовком. Сначала он получает Range, представляющий весь столбец. Затем он использует метод range объекта get_End для получения диапазона, представляющего последнюю использованную ячейку столбца. Затем код создает другой Range, представляющий первую ячейку, содержащую значения, и использует две ячейки для получения еще одного нового Range, представляющего все ячейки значений. (Это проще, если вы знаете, где ячейки впереди времени, поэтому вам не нужно путаться, пытаясь найти последнюю ячейку.)

...

Чтобы упростить использование значений, код копирует значения в 1-мерный массив C#. Он устанавливает свойство DataSource элемента управления ListBox в новый массив, и элемент управления автоматически отображает значения.

Источник: http://csharphelper.com/blog/2014/11/read-data-from-an-excel-workbook-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *