Private void ExcelButton_Click(object sender, EventArgs e)

{

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

OpenExcelDocument("spisok.xls");

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

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

int i = 6;

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

Foreach (DataRow row in dataSet11.Contacts)

{

//занести в столбец А название группы - фамилию

PutCell("A" + i.ToString(), row["Fam"].ToString());

//выделить ячейки с А по D

range = WorkSheet.get_Range("A" + i.ToString(), "D" + i.ToString());

//и объединить их

range.Merge(Type.Missing);

//установить жирный шрифт

range.Font.Bold = true;

//и курсив

range.Font.Italic = true;

//задать цвет заливки

range.Interior.ColorIndex = 34;

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

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

//установить выравнивание по центру

range.HorizontalAlignment = Microsoft.Office.Interop. Excel.XlHAlign.xlHAlignCenter;

//получить список телефонов по заданной фамилии

DataRow[] phones = row.GetChildRows(dataSet11.Relations ["FK_Contacts_Phones"]);

i++;

//num - порядковый номер телефона заданного абонента

int num = 0;

//просмотреть все телефоны заданного абонента

Foreach (DataRow phone in phones)

{

num++;

//занести в столбец А порядковый номер записи

PutCellBorder("A" + i.ToString(), num.ToString());

//занести в столбец B фамилию абонента

PutCellBorder("B" + i.ToString(), row["Fam"].ToString());

//занести в столбец C имя абонента

PutCellBorder("C" + i.ToString(), row["Name"].ToString());

//занести в столбец D номер телефона

PutCellBorder("D" + i.ToString(), phone["Phone"].ToString());

i++;

}

//вывести количество записей в текущей группе

PutCell("A" + i.ToString(), "Итого: " + num.ToString());

//и отформатировать соответствующую ячейку

range = WorkSheet.get_Range("A" + i.ToString(), "D" + i.ToString());

range.Merge(Type.Missing);

range.Font.Italic = true;

range.Interior.ColorIndex = 40;

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

i++;

}

//сделать приложение Excel видимым

ExcelApp.Visible = true;

}