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;
}