2015-06-02 3 views
0

Можно ли создать копию/клон формы до другой Рабочий лист Excel с использованием библиотеки EPPlus?Копирование/клонирование формы Excel с EPPlus на другой рабочий лист?

Существует уже решение в том же листе Excel показано здесь: Copy/clone an Excel shape with EPPlus?

Но мне нужна возможность скопировать их на другой лист (из шаблона к месту назначения). Кто-нибудь знает обходное решение для этого?

Заранее спасибо.

ответ

0

На самом деле я нашел решение этой проблемы. Я добавил этот код в файл ExcelDrawings.cs:

/// <summary> 
    /// Add a new shape to the worksheet 
    /// </summary> 
    /// <param name="Name">Name</param> 
    /// <param name="Source">Source shape</param> 
    /// <returns>The shape object</returns> 

    public ExcelShape AddShape(string Name, ExcelShape Source) 
    { 
     if (Worksheet is ExcelChartsheet && _drawings.Count > 0) 
     { 
      throw new InvalidOperationException("Chart worksheets can't have more than one drawing"); 
     } 
     if (_drawingNames.ContainsKey(Name)) 
     { 
      throw new Exception("Name already exists in the drawings collection"); 
     } 
     XmlElement drawNode = CreateDrawingXml(); 
     drawNode.InnerXml = Source.TopNode.InnerXml; 

     ExcelShape shape = new ExcelShape(this, drawNode); 
     shape.Name = Name; 
     shape.Style = Source.Style; 
     _drawings.Add(shape); 
     _drawingNames.Add(Name, _drawings.Count - 1); 
     return shape; 
    } 
Смежные вопросы