Private void OpenExcelDocument(string FileName)

{

//создать новый объект приложения Excel

ExcelApp = new Microsoft.Office.Interop.Excel.Application();

//задать файл шаблона

object template = Application.StartupPath + @"\reports\" + FileName;

//применить шаблон

ExcelApp.Workbooks.Add(template);

//получить первую рабочую книгу файла

WorkBook = ExcelApp.Workbooks[1];

//получить список листов рабочей книги

ExcelSheets = WorkBook.Worksheets;

//выбрать первый лист

WorkSheet = (Microsoft.Office.Interop.Excel.Worksheet) ExcelSheets.get_Item(1);

}

 

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

 

Private void PutCell(string cell, string val)

{

//получить диапазон, соответствующий выбранной ячейке

range = WorkSheet.get_Range(cell, Type.Missing);

//занести в ячейку значение

range.Value2 = val;

}

Private void PutCellBorder(string cell, string val)

{

//вызвать функцию занесения в ячейку значения

PutCell(cell, val);

//нарисовать границу вокруг ячейки

range.BorderAround (Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex. xlColorIndexAutomatic, Type.Missing);

}

 

Для запуска процесса формирования списка поместите на главную форму программы кнопку «Список в Excel». Текст ее обработчика с комментариями приведен ниже:

 

Private void ExcelButton_Click(object sender, EventArgs e)

{

//создать документ на основе шаблона

OpenExcelDocument("spisok.xls");

//занести текущую дату в ячейку D1

PutCell("D1", DateTime.Now.ToShortDateString());

//i - порядковый номер записи

int i = 1;

//просмотреть все строки таблицы Phones