Интеграция C# с Microsoft Office. Вывод данных в лист Excel.

Интеграция C# с Microsoft Office. Пример взаимодействия с Excel.

Сегодня мы изучим, как при помощи C# обращаться к программе Microsoft Excel. Для начала нам нужно добавить в проект ссылку на COM объект Excel. Для этого заходим в меню "Проекты" ->"Добавить ссылку":

Далее, на закладке COM находим Microsoft Excel Object Library, выбираем его и говорим "ОК":


После этого мы сможем подключить пространство имен Excel к нашему проекту, делается это так:

using Excel = Microsoft.Office.Interop.Excel;

Теперь кидаем на форму кнопку "Пуск" и пишем у нее обработчик нажатия. Вот полный текст программы вместе с этим обработчиком:

using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel;   namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }   private void btnStart_Click(object sender, EventArgs e) { Excel.Application excel = new Excel.Application(); excel.Visible = true; excel.SheetsInNewWorkbook = 7; excel.Workbooks.Add(Type.Missing); } } }

Теперь запускаем программу, жмем на кнопочку:

После чего у нас создается книга Excel с семью листами:

 

Интеграция C# с Microsoft Office. Вывод данных в лист Excel.

переписываем обработчик нажатия на кнопочку:

private void btnStart_Click(object sender, EventArgs e) { Excel.Application excel = new Excel.Application(); //создаем COM-объект Excel excel.Visible = true; //делаем объект видимым excel.SheetsInNewWorkbook = 7;//количество листов в книге excel.Workbooks.Add(Type.Missing); //добавляем книгу Excel.Workbook workbook = excel.Workbooks[1]; //получам ссылку на первую открытую книгу Excel.Worksheet sheet=(Excel.Worksheet)workbook.Worksheets.get_Item(1);//получаем ссылку на первый лист   //выводим в столбик чисел от 1 до 10 for (int i = 1; i <= 10; i++) { sheet.Cells[i, 1] = i; }   //делаем их жирными sheet.Cells.get_Range("A1","A10").Font.Bold = true; ; }

И вот результат работы программы*:

Теперь немного усложним задачу, обведем ячейки толстой линией. Для этого просто добавим в конец обработчика кнопочки вот такие строки:

//рисуем табличку sheet.Cells.get_Range("A1", "B10").Borders.LineStyle = Excel.XlLineStyle.xlContinuous; sheet.Cells.get_Range("A1", "B10").Borders.Weight = Excel.XlBorderWeight.xlThick;

Теперь запустим программу и посмотрим результат ее работы:*

Интеграция C# с Microsoft Office. Документ Word со встроенными макросами C#

В Microsoft Visual Studio 2010 есть возможность создавать документ Microsoft Office со встроенными макросами C#. Рассмотрим эту возможность на примере документа Microsoft Word. И так, создаем новый проект типа Документ Word:

У нас будет создан документ Word, при желании мы можем даже поместить на него элемент управления C#:

Эта кнопка имеет так же обработчик событий, его мы можем запрограммировать:

Теперь документ Word у нас это что то вроде программы, правда, она имеет расширение не ".exe", а ".doc":

Открыв этот документ, мы увидим кнопочку, при нажатии на которую выскакивает сообщение "Hello, world!":