Копировать диаграмму из одного документа в другой - PullRequest
0 голосов
/ 20 апреля 2020

Я создал утилиту отчетности. Для этого я создал файл шаблона с заполнителями и предварительным форматированием и т. Д. c ..

Я открываю файл шаблона и заменяю содержимое и добавляю данные в диаграмму (, используя это ) и сохраните документ под другим именем. Моя утилита создает 10-15 файлов для разных отделов. Для создания резюме мне нужно скопировать диаграмму из каждого документа в одном документе.

Я могу скопировать диаграмму в другой документ, используя следующий код:

public void WriteChartParts(MainDocumentPart sourcePart,
                            MainDocumentPart destnPart)
{
  var paras = sourcePart.Document.Descendants<DocumentFormat.OpenXml.Wordprocessing.Run>();
  var drawingElements = from run in paras
                        where run.Descendants<Drawing>().Count() != 0
                        select run.Descendants<Drawing>().First();

  sourcePart.ChartParts.ToList().ForEach (chartPart =>
                               {
                                 destnPart.AddPart<ChartPart>(chartPart, sourcePart.GetIdOfPart(chartPart));
                               });

  drawingElements.ToList().ForEach(drw =>
                         {
                           destnPart.Document.Body.Append((drw as OpenXmlElement).Clone() as OpenXmlElement);
                         });
  destnPart.Document.Save();
}

Он может скопировать одну диаграмму в другой документ. Но как только копируется вторая диаграмма, документ становится поврежденным. Я предполагаю, что идентификаторы взаимосвязи в каждом документе одинаковы, так как они были созданы из одного исходного документа (обновляются только данные).

Как можно скопировать всю часть диаграммы из одного документа в другой и изменить все идентификаторы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...