Цитата:
Сообщение от
trud
создать и заполнить строки на основании шаблонной строки. это нужно практически 90% отчетам в Аксапте. вы случаем не разбирались есть ли подобное у ClosedXML?
Если речь о том, чтобы создать новую строку с такими же
стилями, как у выбранной, то вот что можно найти в
исходниках XLRow
PHP код:
public new IXLRows InsertRowsBelow(Int32 numberOfRows)
{
int rowNum = RowNumber();
Worksheet.Internals.RowsCollection.ShiftRowsDown(rowNum + 1, numberOfRows);
using (var row = Worksheet.Row(rowNum))
{
using (var asRange = row.AsRange())
{
asRange.InsertRowsBelow(true, numberOfRows).Dispose();
}
}
var newRows = Worksheet.Rows(rowNum + 1, rowNum + numberOfRows);
CopyRows(newRows);
return newRows;
}
private void CopyRows(IXLRows newRows)
{
foreach (var newRow in newRows)
{
var internalRow = Worksheet.Internals.RowsCollection[newRow.RowNumber()];
internalRow._height = Height;
internalRow.SetStyle(Style);
internalRow._collapsed = Collapsed;
internalRow._isHidden = IsHidden;
internalRow._outlineLevel = OutlineLevel;
}
}
public IXLRow CopyTo(IXLRow row)
{
row.Clear();
var newRow = (XLRow)row;
newRow._height = _height;
newRow.Style = GetStyle();
using (var asRange = AsRange())
asRange.CopyTo(row).Dispose();
return newRow;
}
Т.е. методы InsertRowsBelow() и CopyTo() на вид делают именно это.