本文整理汇总了C#中Table.MergeCells方法的典型用法代码示例。如果您正苦于以下问题:C# Table.MergeCells方法的具体用法?C# Table.MergeCells怎么用?C# Table.MergeCells使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Table
的用法示例。
在下文中一共展示了Table.MergeCells方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FillCells
protected override void FillCells(Table table)
{
int row = 0;
DateTime now = DateTime.Now;
if (data.TileInPanels.Count>0)
{
SetTitleAndCap(table, ref row, "Расход плитки Сборной части " + now);
FillTiles(table,ref row, data.TileInPanels);
}
if (data.TileInMonolith.Count > 0)
{
if (data.TileInPanels.Count > 0)
{
var mCells = CellRange.Create(table, row, 0, row, table.Columns.Count-1);
table.MergeCells(mCells);
row++;
}
SetTitleAndCap(table,ref row, "Расход плитки Монолитной части " + now);
var rowHeader = table.Rows[row - 1];
rowHeader.Borders.Bottom.LineWeight = LwBold;
rowHeader.Borders.Top.LineWeight = LwBold;
FillTiles(table,ref row, data.TileInMonolith);
}
}
示例2: GetTable
public Table GetTable()
{
Database db = HostApplicationServices.WorkingDatabase;
CellRange mCells;
Table table = new Table();
table.TableStyle = ToTable.getTableStyle(db);
// Размер таблицы
table.SetSize(3, Enum.GetValues(typeof(ColEnum)).Length);
// Ширина столбцов
foreach (var item in table.Columns)
{
item.Width = 35;
item.Alignment = CellAlignment.MiddleCenter;
}
table.Columns[0].Width = 10;
table.Rows[1].Height = 15;
// Заголовки столбцов и название таблицы
table.Cells[1, (int)ColEnum.RoomNumber].TextString = "№пом.";
table.Cells[1, (int)ColEnum.RoomName].TextString = "Наименование";
table.Cells[1, (int)ColEnum.CeilMaterial].TextString = "Потолок";
table.Cells[1, (int)ColEnum.CeilArea].TextString = "Площадь, м2";
table.Cells[1, (int)ColEnum.CarniceMaterial].TextString = "Потолочный карниз";
table.Cells[1, (int)ColEnum.CarniceLenght].TextString = "Длина, п.м.";
table.Cells[1, (int)ColEnum.WallMaterial].TextString = "Стены";
table.Cells[1, (int)ColEnum.WallArea].TextString = "Площадь стен, м2";
table.Cells[1, (int)ColEnum.DeckMaterial].TextString = "Пол";
table.Cells[1, (int)ColEnum.DeckArea].TextString = "Площадь, м2";
table.Cells[1, (int)ColEnum.BaseboardMaterial].TextString = "Плинтус";
table.Cells[1, (int)ColEnum.BaseboardLenght].TextString = "Длина, п.м.";
table.Cells[1, (int)ColEnum.Description].TextString = "Примечание";
// Заполнение помещений
FillRoomsMaterial(table);
int row = table.Rows.Count - 1;
// Заполнение итогов
// одна строка отступа.
// Объединение строки между помещениями и итогом по матаериалам.
mCells = CellRange.Create(table, row, 0, row, Enum.GetValues(typeof(ColEnum)).Length - 1);
table.MergeCells(mCells);
row++;
table.InsertRowsAndInherit(row, row-1, 1);
table.Cells[row, 0].TextString = "Итого материалов в этой квартире";
table.Cells[row, 0].Alignment = CellAlignment.MiddleCenter;
row++;
table.InsertRowsAndInherit(row, 2, 1);
// заполнение итогов по материалам
FillTotalMaterials(table,row);
table.GenerateLayout();
return table;
}
示例3: FillTotalMaterials
// заполнение итогов по всем материалам одной конструкции
private void FillTotalMaterials(Table table, int rowStart)
{
CellRange mCells;
// группировка всех материалов по типу коеструкции
var maters = _rooms.SelectMany(r => r.Materials).GroupBy(m => m.Construction);
foreach (var matersSomeConstr in maters)
{
// группировка по имени материала
var materSomeName = matersSomeConstr.GroupBy(m => m.Name, StringComparer.CurrentCultureIgnoreCase);
int countMaterSome = materSomeName.Count();
int curRowsToMater = table.Rows.Count - rowStart;
if (curRowsToMater < countMaterSome)
{
table.InsertRowsAndInherit(table.Rows.Count, 2, countMaterSome- curRowsToMater);
}
int row = rowStart;
foreach (var mater in materSomeName)
{
if (matersSomeConstr.Key == EnumConstructionType.Undefined) continue;
mCells = CellRange.Create(table, row, (int)ColEnum.RoomNumber, row, (int)ColEnum.RoomName);
table.MergeCells(mCells);
// mater - должен быть всегда один материал.
var value = mater.Sum(m => m.PresentValue).ToString();
ColEnum colName;
ColEnum colValue;
getColEnumFromConstructionEnum(matersSomeConstr.Key, out colName, out colValue);
table.Cells[row, (int)colName].TextString = mater.Key;
table.Cells[row, (int)colValue].TextString = value;
row++;
}
}
}
示例4: FillRoomsMaterial
// заполнение помещений
private int FillRoomsMaterial(Table table)
{
CellRange mCells;
int row= table.Rows.Count-1;
// сортировка помещений по номерам
var rooms = _rooms.OrderBy(r => r.Owner).ThenBy(n => n.Number);
foreach (var room in rooms)
{
int topRow = row;
// Секция
if (row == 2)
{
table.Cells[0, 0].TextString = "Расход материалов в квартире " + room.Owner;
}
// Наименование помещения
table.Cells[row, (int)ColEnum.RoomName].TextString = room.Name;
table.Cells[row, (int)ColEnum.RoomNumber].TextString = room.Number.ToString();
// Примечание
table.Cells[row, (int)ColEnum.Description].TextString = room.Description;
// матариалы в квартире
foreach (var item in Enum.GetValues(typeof(EnumConstructionType)).Cast<EnumConstructionType>())
{
if (item == EnumConstructionType.Undefined) continue;
FillRowMaterial(table, row, room, item);
}
row = table.Rows.Count - 1;
//Объединение столбцов номера и имени помещения
if ((row - topRow) > 1)
{
mCells = CellRange.Create(table, topRow, (int)ColEnum.RoomNumber, row-1, (int)ColEnum.RoomNumber);
table.MergeCells(mCells);
mCells = CellRange.Create(table, topRow, (int)ColEnum.RoomName, row-1, (int)ColEnum.RoomName);
table.MergeCells(mCells);
}
}
// Итого по помещениям
mCells = CellRange.Create(table, row, (int)ColEnum.RoomNumber, row, (int)ColEnum.RoomName);
table.MergeCells(mCells);
table.Cells[row, (int)ColEnum.RoomNumber].TextString = "Итого";
// всего материалов по всем помещениям.
var maters = _rooms.SelectMany(r => r.Materials).Where(m => !string.IsNullOrWhiteSpace(m.Name)).GroupBy(m => m.Construction);
table.InsertRowsAndInherit(row+1, 2, 1);
foreach (var item in maters)
{
var value = item.Sum(m => m.PresentValue).ToString();
switch (item.Key)
{
case EnumConstructionType.Wall:
table.Cells[row, (int)ColEnum.WallMaterial].TextString = "Стены, м2";
table.Cells[row, (int)ColEnum.WallArea].TextString = value;
break;
case EnumConstructionType.Deck:
table.Cells[row, (int)ColEnum.DeckMaterial].TextString = "Пол, м2";
table.Cells[row, (int)ColEnum.DeckArea].TextString = value;
break;
case EnumConstructionType.Ceil:
table.Cells[row, (int)ColEnum.CeilMaterial].TextString = "Потолок, м2";
table.Cells[row, (int)ColEnum.CeilArea].TextString = value;
break;
case EnumConstructionType.Baseboard:
table.Cells[row, (int)ColEnum.BaseboardMaterial].TextString = "Плинтус, м.п.";
table.Cells[row, (int)ColEnum.BaseboardLenght].TextString = value;
break;
case EnumConstructionType.Carnice:
table.Cells[row, (int)ColEnum.CarniceMaterial].TextString = "Карниз, м.п.";
table.Cells[row, (int)ColEnum.CarniceLenght].TextString = value;
break;
case EnumConstructionType.Undefined:
break;
default:
break;
}
}
return row;
}
示例5: FillMaterial
// заполнение помещений
private void FillMaterial(Table table)
{
int row = table.Rows.Count - 1;
// Группировка по секциям
var sections = _rooms.GroupBy(r => r.Ws.Section).OrderBy(s=>s.Key);
foreach (var section in sections)
{
table.InsertRows(row+1, 8, 1);
_mCells = CellRange.Create(table, row, 0, row, Enum.GetValues(typeof(ColEnum)).Length - 1);
table.MergeCells(_mCells);
table.Cells[row, 0].TextString = "Секция " + section.Key;
row++;
// Группировка по квартирам
var apartments = section.GroupBy(r => r.Owner).OrderBy(a=>a.Key);
foreach (var apartment in apartments)
{
int rowApartment = row;
table.Cells[rowApartment, (int)ColEnum.Apartament].TextString = apartment.Key;
// сортировка помещений в квартире по номерам
var rooms = apartment.OrderBy(n => n.Number);
foreach (var room in rooms)
{
FillRoom(table,row, room);
row = table.Rows.Count - 1;
}
if (row-1 > rowApartment)
{
_mCells = CellRange.Create(table, rowApartment, (int)ColEnum.Apartament, row-1, (int)ColEnum.Apartament);
table.MergeCells(_mCells);
}
}
}
}
示例6: FillRoom
private void FillRoom(Table table, int row, Room room)
{
// Наименование помещения
table.Cells[row, (int)ColEnum.RoomName].TextString = room.Name;
table.Cells[row, (int)ColEnum.RoomNumber].TextString = room.Number.ToString();
// Примечание
table.Cells[row, (int)ColEnum.Description].TextString = room.Description;
// матариалы в помещении
foreach (var item in Enum.GetValues(typeof(EnumConstructionType)).Cast<EnumConstructionType>())
{
if (item == EnumConstructionType.Undefined) continue;
FillRowMaterial(table, row, room, item);
}
if ((table.Rows.Count - 2) > row)
{
_mCells = CellRange.Create(table, row, (int)ColEnum.RoomName, table.Rows.Count - 2, (int)ColEnum.RoomName);
table.MergeCells(_mCells);
_mCells = CellRange.Create(table, row, (int)ColEnum.RoomNumber, table.Rows.Count - 2, (int)ColEnum.RoomNumber);
table.MergeCells(_mCells);
}
}
示例7: SetTitleAndCap
private void SetTitleAndCap(Table table,ref int row, string title)
{
var cell = table.Cells[row,0];
if (cell.IsMerged == null || !cell.IsMerged.Value)
{
var mCells = CellRange.Create(table, row, 0, row , table.Columns.Count-1);
table.MergeCells(mCells);
}
cell.TextString = title;
row++;
table.Rows[row].Height = 15;
// столбец Поз.
cell = table.Cells[row, 0];
cell.TextString = "Поз.";
// столбец Артикул
cell = table.Cells[row, 1];
cell.TextString = "Артикул";
cell.Alignment = CellAlignment.MiddleCenter;
// столбец Образец
cell = table.Cells[row, 2];
cell.TextString = "Образец";
// столбец Расход, шт.
cell = table.Cells[row, 3];
cell.TextString = "Расход, шт.";
// столбец Расход, м.кв.
cell = table.Cells[row, 4];
cell.TextString = "Расход, м.кв.";
// столбец Цвет
cell = table.Cells[row, 5];
cell.TextString = "Цвет";
cell.Alignment = CellAlignment.MiddleCenter;
row++;
}
示例8: FillTiles
private void FillTiles(Table table,ref int row, List<IGrouping<Tile, Tile>> tiles)
{
Cell cell;
CellRange mCells;
int index = 1;
int totalCount = 0;
double totalArea =0;
foreach (var tile in tiles)
{
cell = table.Cells[row, 0];
cell.TextString = index++.ToString();
cell = table.Cells[row, 1];
cell.TextString = tile.Key.Article;
cell = table.Cells[row, 2];
cell.BackgroundColor = tile.Key.Color;
int count = tile.Count();
totalCount += count;
cell = table.Cells[row, 3];
cell.TextString = count.ToString();
cell = table.Cells[row, 4];
var area = Math.Round(count * Panels.TileCalc.OneTileArea, 2);
totalArea += area;
cell.TextString = area.ToString("0.00");
cell = table.Cells[row, 5];
cell.TextString = tile.Key.NCS;
row++;
}
var rowHeader = table.Rows[row];
rowHeader.Borders.Top.LineWeight = LwBold;
rowHeader.Borders.Bottom.LineWeight = LwBold;
mCells = CellRange.Create(table, row, 0, row, 2);
table.MergeCells(mCells);
cell = table.Cells[row, 0];
cell.TextString = "Итого:";
cell.Alignment = CellAlignment.MiddleCenter;
cell = table.Cells[row, 3];
cell.TextString = totalCount.ToString();
cell = table.Cells[row, 4];
cell.TextString = totalArea.ToString();
row++;
}
示例9: getTable
private Table getTable(Database db)
{
Table table = new Table();
table.SetDatabaseDefaults(db);
table.TableStyle = db.GetTableStylePIK(); //getTableStyle(db);
bool hasColorName = Paint.HasColorName(_album.Colors);
int numColumns = hasColorName? 6:5;
table.SetSize(_album.Colors.Count + 3, numColumns);
table.Columns[0].Width = 10; // Поз
table.Columns[1].Width = 20; // Артикул
table.Columns[2].Width = 20; // Образец
table.Columns[3].Width = 20; // Расход шт
table.Columns[4].Width = 20; // Расход м.кв.
if (hasColorName)
{
table.Columns[5].Width = 30; // Цвет
table.Cells[1, 5].TextString = "Цвет";
}
table.Columns[0].Alignment = CellAlignment.MiddleCenter;
table.Columns[3].Alignment = CellAlignment.MiddleCenter;
table.Columns[4].Alignment = CellAlignment.MiddleCenter;
table.Rows[1].Height = 15;
table.Cells[0, 0].TextString = "Расход плитки на альбом " + _album.StartOptions.Abbr + " от " + _album.Date;
table.Cells[1, 0].TextString = "Поз.";
table.Cells[1, 1].TextString = "Артикул";
table.Cells[1, 2].TextString = "Образец";
table.Cells[1, 3].TextString = "Расход, шт.";
table.Cells[1, 4].TextString = "Расход, м.кв.";
int row = 2;
int i = 1;
int totalCountTile = 0;
double totalArea = 0;
foreach (var tileCalcSameColor in _album.TotalTilesCalc)
{
table.Cells[row, 0].TextString = i++.ToString(); //"Поз.";
table.Cells[row, 1].TextString = tileCalcSameColor.Paint.Article; //"Артикул";
table.Cells[row, 2].BackgroundColor = tileCalcSameColor.Paint.Color; // "Образец";
table.Cells[row, 3].TextString = tileCalcSameColor.Count.ToString();// "Расход, шт.";
table.Cells[row, 4].TextString = tileCalcSameColor.TotalArea.ToString(); // "Расход, м.кв.";
if (hasColorName)
{
table.Cells[row, 5].TextString = tileCalcSameColor.Paint.Name; //"Цвет";
}
totalCountTile += tileCalcSameColor.Count;
totalArea += tileCalcSameColor.TotalArea;
row++;
}
var mCells = CellRange.Create(table, row, 0, row, 2);
table.MergeCells(mCells);
table.Cells[row, 0].TextString = "Итого:";
table.Cells[row, 3].TextString = totalCountTile.ToString();
table.Cells[row, 4].TextString = totalArea.ToString();
table.GenerateLayout();
return table;
}
示例10: getTable
private Table getTable()
{
Table table = new Table();
table.SetDatabaseDefaults(db);
table.TableStyle = db.GetTableStylePIK(true); // если нет стиля ПИк в этом чертеже, то он скопируетс из шаблона, если он найдется
// Измпнение отступа в стилше ПИК на 1
UpdateTableStyle(table.TableStyle);
bool hasTotalRow = (condRows.Count > 1);
int rows = hasTotalRow ? condRows.Count + 3 : condRows.Count + 2;
table.SetSize(rows, 5);
table.SetRowHeight(8);
// Название таблицы
var rowTitle = table.Cells[0, 0];
rowTitle.Alignment = CellAlignment.MiddleCenter;
rowTitle.TextString = "Спецификация на наружное ограждение блока кондиционера";
// столбец Марка
var col = table.Columns[0];
col.Alignment = CellAlignment.MiddleCenter;
col.Width = 10;
// столбец Цвет.
col = table.Columns[1];
col.Alignment = CellAlignment.MiddleLeft;
col.Width = 35;
// столбец Образец
col = table.Columns[2];
col.Alignment = CellAlignment.MiddleCenter;
col.Width = 20;
// столбец Кол
col = table.Columns[3];
col.Alignment = CellAlignment.MiddleCenter;
col.Width = 20;
// столбец Прим
col = table.Columns[4];
col.Alignment = CellAlignment.MiddleCenter;
col.Width = hasTotalRow? 40 : 60;
// Заголовок Маркв
var cellColName = table.Cells[1, 0];
cellColName.TextString = "Марка";
//cellColName.Alignment = CellAlignment.MiddleCenter;
// Заголовок Цвет
cellColName = table.Cells[1, 1];
cellColName.TextString = "Цвет";
cellColName.Alignment = CellAlignment.MiddleCenter;
// Заголовок Образец
cellColName = table.Cells[1, 2];
cellColName.TextString = "Образец";
//cellColName.Alignment = CellAlignment.MiddleCenter;
// Заголовок Кол
cellColName = table.Cells[1, 3];
cellColName.TextString = "Кол-во, шт.";
//cellColName.Alignment = CellAlignment.MiddleCenter;
// Заголовок прим
cellColName = table.Cells[1, 4];
cellColName.TextString = "Примечание";
//cellColName.Alignment = CellAlignment.MiddleCenter;
// Строка заголовков столбцов
var rowHeaders = table.Rows[1];
rowHeaders.Height = 15;
var lwBold = rowHeaders.Borders.Top.LineWeight;
rowHeaders.Borders.Bottom.LineWeight = lwBold;
int row = 2;
foreach (var itemRow in condRows)
{
table.Cells[row, 0].TextString = itemRow.Mark.ToString();
table.Cells[row, 1].TextString = itemRow.ColorName;
table.Cells[row, 2].BackgroundColor = itemRow.Color;
table.Cells[row, 3].TextString = itemRow.Count.ToString();
row++;
}
// Объединение итого
if (hasTotalRow)
{
table.MergeCells(CellRange.Create(table, row, 0, row, 2));
table.Cells[row, 0].TextString = "Итого на фасад";
table.Cells[row, 3].TextString = condRows.Sum(c => c.Count).ToString();
// Объединение примечания
table.MergeCells(CellRange.Create(table, 2, 4, row, 4));
table.Rows[row].Borders.Top.LineWeight = lwBold;
}
table.Cells[2, 4].TextString = "Стальной перфорированный лист, окрашенный порошковой эмалью в цвет по таблице.";
var lastRow = table.Rows.Last();
lastRow.Borders.Bottom.LineWeight = lwBold;
table.GenerateLayout();
return table;
}