/// <summary> /// Записывает данные страницы на текущий лист XLS-файла. /// </summary> /// <param name="table">Таблица с данными.</param> /// <param name="xlsFile">XLS-файл.</param> private static void WriteDataTable(DataTable table, XlsFile xlsFile) { // установить имя листа xlsFile.SheetName = table.TableName; // записать названия столбцов for (int i = 0; i < table.Columns.Count; ++i) { // название столбца xlsFile.SetCellValue( 1, i + 1, table.Columns[i].ColumnName ); // .NET-тип данных столбца xlsFile.SetCellValue( 2, i + 1, table.Columns[i].DataType.ToString() ); } // скрыть строку с типами данных xlsFile.SetRowHidden( 2, true ); // записать данные таблицы int rowFrom = 3; for (int row = 0; row < table.Rows.Count; ++row) { object[] values = table.Rows[row].ItemArray; for(int col = 0; col < values.Length; ++col) { object val = values[col]; if(val != DBNull.Value) { if(table.Columns[col].DataType == typeof( byte[] )) { Image image = Image.FromStream( new MemoryStream( (byte[])ConvertValue( val ) ) ); xlsFile.AddImage( row + rowFrom, col + 1, image ); } else { xlsFile.SetCellValue( row + rowFrom, col + 1, ConvertValue( val ) ); } } } } }