Показать сообщение отдельно
Старый 05.08.2013, 10:01   #5  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от trud Посмотреть сообщение
создать и заполнить строки на основании шаблонной строки. это нужно практически 90% отчетам в Аксапте. вы случаем не разбирались есть ли подобное у ClosedXML?
Если речь о том, чтобы создать новую строку с такими же стилями, как у выбранной, то вот что можно найти в исходниках XLRow
PHP код:
public new IXLRows InsertRowsBelow(Int32 numberOfRows)
{
   
int rowNum RowNumber();
   
Worksheet.Internals.RowsCollection.ShiftRowsDown(rowNum 1numberOfRows);
   
using (var row Worksheet.Row(rowNum))
   {
       
using (var asRange row.AsRange())
       {
           
asRange.InsertRowsBelow(truenumberOfRows).Dispose();
       }
   }
   var 
newRows Worksheet.Rows(rowNum 1rowNum 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() на вид делают именно это.