Интеграция 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!":