Я создал утилиту отчетности. Для этого я создал файл шаблона с заполнителями и предварительным форматированием и т. Д. 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();
}
Он может скопировать одну диаграмму в другой документ. Но как только копируется вторая диаграмма, документ становится поврежденным. Я предполагаю, что идентификаторы взаимосвязи в каждом документе одинаковы, так как они были созданы из одного исходного документа (обновляются только данные).
Как можно скопировать всю часть диаграммы из одного документа в другой и изменить все идентификаторы.