Содержание
- Введение
- Добавление необходимых ссылок в решение
- Работа с объектом Application (Excel)
- Запуск и остановка Microsoft Excel в C#
- Создание рабочей книги Excel в C#
- Работа с листами Excel в C#. Hello Excel
- Итого
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
При разработки различных программ для анализа данных нередко требуется не только обрабатывать большие массивы данных, но и предоставить конечному пользователю удобно оформленный отчёт о работе программного обеспечения. В сегодняшних реалиях экономия килобайт оперативной памяти при разработке программного обеспечения уже не так важна по сравнению с удобством работы программного продукта. Не секрет, что при работе в Windows для наиболее удобного представления табличных данных является Microsoft Excel. В этой и других статьях, посвященных работе с Excel в .NET Core и C# я постараюсь рассмотреть наиболее частые задачи по импорту и экспорту данных между приложением и Microsoft Excel. Сегодня мы рассмотрим как использовать MS Excel в .NET Core, используя технологию COM.
Введение
Разработка программ, взаимодействующих с пакетом Microsoft Office, вне зависимости от среды разработки, будь то Visual Studio С# или Delphi, основана на применении так называемой объектной модели Microsoft Office. Взаимодействие с объектами такой модели базируется на технологии OLE (Object Linking and Embedding, связывание и внедрение объектов), которая, в свою очередь, использует технологический стандарт COM (Component Object Model — модель компонентного объекта).
Существует достаточно много решений, позволяющих работать с Microsoft Excel в Visual Studio .NET о которых мы, вполне возможно, поговорим позднее. Сейчас же мы будем учиться использовать возможности Microsoft Excel, опираясь исключительно на объектную модель Microsoft Office и те возможности, которые она предоставляет разработчикам, так сказать, «из коробки».
Добавление необходимых ссылок в решение
Для подключения в решение библиотек для взаимодействия с Microsoft Excel необходимо добавить добавьте следующие ссылки:
- Microsoft Excel 16.0 Object Library
- Microsoft Office 16.0 Object Library
В Visual Studio это делается следующим образом:
1. В «Обозревателе решений» кликаем правой кнопкой мыши по строке «Зависимости» и выбираем пункт «Добавить ссылку на модель COM»
2. В открывшемся окне в строке поиска набираем «Microsoft», выбираем необходимые ссылки, то есть Microsoft Excel 16.0 Object Library и Microsoft Office 16.0 Object Library и жмем «Ok»:
После этого, в обозревателе решений для нашего проекта в зависимостях появятся следующие ссылки:
Зависимости
COM
Interop.Microsoft.Office.Core
Interop.Microsoft.Office.Interop.Excel
Платформы
Microsoft.NetCore.App
Теперь, чтобы наше решение для .NET Core могло полноценно использовать возможности Microsoft Excel необходимо указать в решении, что все типы, используемые в объектной модели Microsoft Office будут использоваться в нашей сборке. Чтобы это сделать выбираем в зависимостях нашего решения каждую ссылку из раздела COM и в разделе «Свойства» указываем напротив пункта «Внедрить типы взаимодействия» значение «Да». На рисунке ниже представлен пример для ссылки Interop.Microsoft.Office.Core
Если не выполнить эти действия, то при разработки приложения .NET Core при попытке работы с Excel вы получите следующую ошибку:
System.IO.FileNotFoundException HResult=0x80070002
Сообщение = Could not load file or assembly ‘office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c’. Не удается найти указанный файл.
Источник = <Не удается определить источник исключения>
Трассировка стека: <Не удается определить трассировку стека исключения>
Работа с объектом Application (Excel)
Объект Application
представляет всё приложение Microsoft Excel. С помощью этого объекта в C# мы можем запускать и останавливать работу Excel, получать доступ к рабочим книгам Excel и так далее. Посмотрим, как можно взаимодействовать с Excel в C#, используя объект Application
.
Запуск и остановка Microsoft Excel в C#
Чтобы продемонстрировать запуск и остановку Excel в C# подключим в наше решение пространство имен Microsoft.Office.Interop.Excel
, используя псевдоним:
using Excel = Microsoft.Office.Interop.Excel;
Теперь напишем следующий код для метода Main()
:
using System; using Excel = Microsoft.Office.Interop.Excel; using System.Runtime.InteropServices; namespace ExcelApp { class Program { static void Main(string[] args) { Excel.Application application = new Excel.Application(); Console.WriteLine("Объект Excel.Application создан"); Console.ReadKey(); application.Visible = true; Console.WriteLine("Окно Excel видно пользователю"); Console.ReadKey(); Console.WriteLine("Закрываем Excel"); application.Quit(); Marshal.ReleaseComObject(application); } } }
Разберемся с тем, что происходит в нашем приложении при запуске. Вначале мы создаем объект application
типа Excel.Application
(Excel
— псевдоним пространства имен Microsoft.Office.Interop.Excel
). После выполнения этой строки кода происходит запуск процесса Microsoft Excel. Убедиться в этом можно, открыв диспетчер задач Windows и заглянув в раздел «Фоновые процессы»:
Чтобы показать главное окно Excel пользователю, мы устанавливаем значение true
свойству Visible
:
application.Visible = true;
И, наконец, для того, чтобы закрыть Excel и освободить память, занятую процессом Excel мы вызываем метод Quit()
.
application.Quit()
Таким образом, всё, что пока делает наше приложение .NET Core — это запускает процесс Microsoft Excel, показывает окно Excel и закрывает приложение. При этом, стоит обратить внимание на следующий момент: так как чаще всего мы будем взаимодействовать с Excel в C# в фоновом режиме без показа главного окна, то по окончанию взаимодействия необходимо обязательно вызывать метод Quit()
объекта Application
и вызвать метод объекта Marshal.ReleaseComObject(application)
из пространства имен System.Runtime.InteropServices
. Если этого не сделать, то после N
запусков нашего приложения мы рискуем «забить» оперативную память компьютера неиспользуемыми процессами Excel, так как после остановки нашего приложения и вызова Quit()
внешний процесс (Excel) автоматически не завершается. Продемонстрировать это можно, написав всего две строки кода:
static void Main(string[] args) { Excel.Application application = new Excel.Application(); application.Quit(); }
и запустить приложение несколько раз. Например, на рисунке ниже показан диспетчер задач после трех запусков нашего приложения:
Создание рабочей книги Excel в C#
Следующий пример демонстрирует создание новой рабочей книги Excel в C#:
using System; using Excel = Microsoft.Office.Interop.Excel; using System.Runtime.InteropServices; namespace ExcelApp { class Program { static void Main(string[] args) { //Объявляем переменную приложения Excel Excel.Application application = null; //объявляем переменные для коллекции рабочих книг //и одной рабочей книги Excel.Workbooks workbooks = null; Excel.Workbook workbook = null; try { //создаем объект Application application = new Excel.Application(); Console.WriteLine("Объект Excel.Application создан"); Console.ReadKey(); //показываем окно Excel пользователю application.Visible = true; Console.WriteLine("Окно Excel видно пользователю"); //получаем ссылку на коллекцию рабочих книг workbooks = application.Workbooks; //добавляем новую рабочую книгу в коллекцию workbook = workbooks.Add(); Console.ReadKey(); Console.WriteLine("Закрываем Excel"); application.Quit(); } finally { //освобождаем память, занятую объектами Marshal.ReleaseComObject(workbook); Marshal.ReleaseComObject(workbooks); Marshal.ReleaseComObject(application); } } } }
На первый взгляд, может показаться, что этот код вполне можно упростить, например, избавившись от «лишних» переменной workbooks
, например так:
workbook = application.Workbooks.Add();
Такой код, безусловно, будет короче и рабочая книга также будет создана, НО при этом, память выделенная для процесса Excel не будет освобождена по причине того, что в приведенной выше строке кода мы на самом деле создаем не один, а два объекта: объект типа Excel.Workbooks
и объект типа Excel.Workbook
и, соответственно, оба эти объекта нам необходимо освободить после работы с ними.
Исходя из вышеизложенного, можно определить для себя два следующих правила работы с COM в C#:
Никогда не использовать две и более точек при работе с COM
О том, из-за чего процесс Excel может зависать — смотрите в этой статье.
Работа с листами Excel в C#. Hello Excel
В следующем примере демонстрируется то, как получить доступ к первому листу рабочей книги и записи в ячейку A1
строки «Hello Excel
«:
using Excel = Microsoft.Office.Interop.Excel; using System.Runtime.InteropServices; namespace ExcelApp { class Program { static void Main(string[] args) { Excel.Application application = null; Excel.Workbooks workbooks = null; Excel.Workbook workbook = null; Excel.Sheets worksheets = null; Excel.Worksheet worksheet = null; //переменная для хранения диапазона ячеек //в нашем случае - это будет одна ячейка Excel.Range cell = null; try { application = new Excel.Application { Visible = true }; workbooks = application.Workbooks; workbook = workbooks.Add(); worksheets = workbook.Worksheets; //получаем доступ к коллекции рабочих листов worksheet = worksheets.Item[1];//получаем доступ к первому листу cell = worksheet.Cells[1, 1];//получаем доступ к ячейке cell.Value = "Hello Excel";//пишем строку в ячейку A1 application.Quit(); } finally { //освобождаем память, занятую объектами Marshal.ReleaseComObject(cell); Marshal.ReleaseComObject(worksheet); Marshal.ReleaseComObject(worksheets); Marshal.ReleaseComObject(workbook); Marshal.ReleaseComObject(workbooks); Marshal.ReleaseComObject(application); } } } }
После запуска этого приложения откроется Excel, создастся рабочая книга, на первом листе рабочей книги в ячейке А1
появится строка «Hello Excel» после чего Excel попросит сохранить книгу. После отказа сохранения Excel закроется и память процесса Microsoft Excel будет освобождена.
Итого
Итак, сегодня мы рассмотрели основные моменты по работе с Microsoft Excel в C# и .NET Core: научились создавать процесс Microsoft Excel, создавать рабочую книгу, записывать текст в ячейки листа Excel и корректно освобождать память после работы с Excel в C#. В следующий раз мы продолжим разбираться с темой использования возможностей Excel в .NET Core и более детально познакомимся с объектной моделью Microsoft Office.
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
- 82
- 1
- 2
- 3
- 4
- 5
Операционная система: Windows
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Скачать
Microsoft Excel — один из самых популярных редакторов таблиц, позволяющий делать любые математические вычисления и использовать комплексные формулы для подсчета необходимых величин. Редактор Excel располагает огромной библиотекой формул для разного рода задач: продолжения числового ряда, поиска среднего значения из ряда доступных, составления пропорций, решения и анализа линейных и нелинейных уравнений и прочих функций соответствующего предназначения.
Возможности табличного процессора Microsoft Excel
В одном из своих ключевых проектов разработчики представили следующий набор способностей:
- расширенный арсенал форматирования содержимого ячеек в Excel. Доступен выбор цвета и гарнитуры шрифта, начертания текста, обрамления, цвета заливки, выравнивания; уменьшение и увеличение отступа. Наконец, в утилите возможно задание числового формата ячеек с уменьшением или увеличением разрядности; вставка, удаление и перемещение ячеек; подсчет агрегированной суммы; сортировка и фильтрация по заданному критерию и другие опции
- вставка огромного количества диаграмм и графиков для анализа и визуализации числовых данных. Так, штатный функционал Excel позволяет вставить на лист иллюстрации, сводные таблицы, гистограммы или линейчатые диаграммы; иерархические, каскадные и лепестковые диаграммы. В дополнение к этому, доступно использование графиков с областями; статистических, комбинированных и кольцевых диаграмм, а также особого подвида точечных или пузырьковых спарклайнов
- схожий с Word инструментарий разметки страницы. Пользователь способен конфигурировать поля, ориентацию и размер страниц; выбрать индивидуальную тему из встроенной библиотеки или загруженную из сети; настроить цвета, шрифты и эффекты, применимые к табличному содержимому; ширину, высоту и масштаб распечаток и прочие элементы
- широкий ассортимент представленных в программе Excel функций. Все функции разбиты на соответствующие категории, что упрощает их использование и выбор. Также можно составлять зависимости формул, наглядно демонстрирующие, какие именно ячейки влияют на подсчет результирующих значений в искомом слоте
- получение внешних данных из сторонних источников для использования в реляционных базах данных. Вложенный функциональный набор Excel позволяет тут же сгенерировать запрос для переноса в СУБД из внешнего файла, веб-служб, ODBC-контейнера и прочих источников
- встроенные продвинутые средства рецензирования и совместной работы. Читатели и редакторы могут одновременно открывать один и тот же документ после его синхронизации с облаком, вносить в него изменения и правки, а также добавлять комментарии для других рецензентов
- интегрированный движок проверки орфографии, тезауруса, синтаксиса и пунктуации набираемого текста. Если данный модуль встречается с новым для него термином или фразой, она тут же выделяется подчеркиванием, дабы автор документа был осведомлен о вероятной ошибке.
На этом портале вы можете выбрать любую версию редактора Excel для скачивания, перейдя на страницу актуального для вас издания программы и щелкнув на активную ссылку. Весь софт на сайте доступен абсолютно бесплатно и содержит русскую локализацию.
Microsoft Excel для Windows
Программа для работы с электронными таблицами вышла в 1985-м году. Интересно то, что первая версия редактора создавалась для компьютеров Apple Mac, вариант для Microsoft DOS появился в 1987-м году. Это был первый табличный редактор, который позволял менять ширину ячеек и использовать разные шрифты. Понятно, что здесь также был набор функций, недоступных в других аналогах того времени. В пакете программ Office этот редактор поставляется с 1993-го года.
Excel 2019 – это самая последняя версия редактора таблиц. Впрочем, версия 2016 также остается актуальной, так как она еще несколько лет будет поддерживаться и получать обновления.
Существенной разницы между двумя версиями нет, Excel 2019 является усовершенствованной версией 2016.
История версий
Excel | Особенности |
---|---|
2007 | Новый ленточный интерфейс, предоставляющий более удобный доступ к функциям, и появление нового формата файлов xlxs |
2010 | Возможность использовать большее количество строк и столбцов, максимальный объем файла увеличен до 2-х гигабайт |
2013 | Комбинированные диаграммы и возможность открывать книги в отдельных окнах |
2016 | Появился «Помощник», писать формулы и уравнения можно от руки (только для сенсорных экранов) |
2019 | Новая вкладка «Рисование», поддержка векторных изображений |
Функции и возможности
В программе присутствуют все необходимые инструменты для работы с электронными таблицами. При этом в каждой новой версии появляются новые инструменты, однако на основных функциях стоит сделать акцент.
Оформление таблицы
Сразу после запуска программы открывается новая книга с таблицей. Это избавляет пользователя от необходимости создания таблицы — можно сразу приступить к заполнению ячеек. Таблицу можно оформить любым способом, исходя из своих потребностей: выбрать цвета ячеек, строк, столбцов, использовать любые шрифты и форматирование для них. Для большего удобства в программе присутствует множество шаблонов и тем, что позволяет настроить внешний вид таблицы в один клик.
Работа с диаграммами
Диаграммы — один из важнейших инструментов в этой программе, позволяющий отображать те или иные данные в удобном формате. Присутствует большое количество разных диаграмм, пользователь может использовать круговые, финансовые, точечные и многие другие виды. При этом данные из таблиц легко преобразовываются в нужный тип диаграммы.
Создание графиков
Построение графиков аналогично работе с диаграммами. Excel предоставляет пользователю объемные, точечные, номинальные, с маркерами и другие виды графиков. В последних версиях программы появилась удобная функция, где графики в виде миниатюр могут отображаться прямо в ячейках.
Работа с формулами
Excel позволяет производить различные арифметические действия, используя встроенный редактор формул. Редактор обеспечивает возможность возводить в степень, извлекать корень, умножать, делить и выполнять многие другие математические действия, используя огромную базу из готовых символов. Стоит добавить, что Excel удобно использовать и в качестве обычного калькулятора. В новых версиях редактора таблиц появилась функция рукописного ввода для устройств с сенсорным экраном.
Изображения и фигуры
В таблицу можно вставить любое растровое изображение и отредактировать его непосредственно в программе. Новые версии Excel также позволяют использовать в таблицах векторную графику любой сложности. Отдельный пункт — «Фигуры», что позволяет вставлять в таблицу простейшую графику, это могут быть математические символы, стрелки, многоугольники, звездочки и другие.
Рисунки SmartArt
Набор инструментов, с помощью которого можно в несколько кликов превратить простую таблицу в настоящую презентацию. SmartArt представляет собой набор шаблонов, которые позволяют оформлять списки, добавлять готовые диаграммы, использовать матрицы. Также с помощью этого инструмента можно наглядно сравнивать какие-либо данные, показывать связь между различными идеями и многое другое.
Преимущества и недостатки
Сегодня существует огромное множество программ для работы с электронными таблицами, между тем, как и 35 лет назад, Excel остается лучшей в своем роде. К другим преимуществам следует отнести:
Преимущества
- Быстрое преобразование данных из формата в формат;
- Поиск с заменой по множеству параметров;
- Возможности программы быстро подстраиваются под нужды пользователя или компании;
- Поддержка и обновления от Microsoft;
- Возможность легко составлять наглядные таблицы, графики и диаграммы;
- Совместимость с бухгалтерскими решениями, например, с 1С.
Как и в предыдущих версиях, есть трудности при обработке объемных массивов данных. К другим недостаткам можно отнести:
Недостатки
- Сложно контролировать изменения, которые вносят другие пользователи;
- Требуется специальная подготовка для работы со всеми функциями.
Скачать бесплатно
Скачать Microsoft Excel
Microsoft Excel версии 2016 доступна для скачивания с помощью MultiSetup или официального сайта. Программа распространяется бесплатно, поддерживает Windows 10, 8, 7 и имеет интерфейс на русском языке.
Windows | 10, 8, 7 |
---|---|
Версия | 2016 |
Размер | 688 Мб |
Файл | exe |
Microsoft Excel 2013 |
Microsoft Excel 2010 |
||
718 МБ | 659,3 МБ | ||
Скачать | Скачать |
Microsoft Excel 2007 |
Microsoft Excel 2003 |
||
215 МБ | 329,3 МБ | ||
Скачать | Скачать |
Особенности программы Excel
Может функционировать как в настольных системах Windows, рабочих станциях и серверном поле (реализация NT), так и в MAC OS. Разработчики не забыли и про мобильные устройства. Полноценная работа в Excel возможна на планшетах, нетбуках и других аппаратах. Новые версии Excel получили способность быстрее проводить форматирование таблиц. Кроме того, разработчики внедрили систему автоматической корректировки, подсказывающей пользователю оптимальные варианты представления вписанных данных. Есть возможность в черновом режиме «Page Layout» увидеть отображение документа в печатной форме и вручную исправить положение, размер и границы таблиц. Впечатляет работа функции «Flash fill». Она сканирует действия юзера в реальном времени и, основываясь на них, выдает прогнозируемые варианты заполнения табличного поля. К примеру, при операции сокращения имени или отчества одного человека в столбце с множеством элементов, выпадет список, предлагающий применить действие ко всем членам. Задействована также анимация в отображении таблиц, что улучшает восприятие и наглядность.
Функциональность Excel
Поддержка программой платформы HTML5 и исполнительной схемы JavaScript позволяет осуществлять комплектацию документа аудио, видео и анимации. Это обеспечивает режим интерактивности представляемому табличному документу как в режиме «одни-на-один», так и в онлайн-клиенте. Все файлы процессора Excel, работающего в комплекте офисного приложения, сохраняются на облачном сервисе. Организациям Майкрософт предлагает бизнес-вариант Excel – самый продвинутый тип программы. В ней реализованы функции для создания многофункциональных аналитических таблиц: PowerPivot и View, а также Quick Explore. Первый инструмент дает возможность манипулировать данными многомерного представления прямо в таблице. Кросс табличный обзор, выполняемый приложением Quick Explore в совокупности с утилитой PowerView, собирающей все данные (графические файлы, диаграммы) и комплектующей в одно окно, обеспечивают высокую информативность готовому документу.