C # OpenXML для встраивания электронных таблиц в документ Word - PullRequest
0 голосов
/ 16 октября 2018

Я сгенерировал электронную таблицу с данными и диаграмму, основанную на данных, используя C # OpenXML.

enter image description here

Теперь я хочу вставить этодиаграмма в текстовый документ, так что когда эти отчеты отправляются, диаграммы могут быть отредактированы, если это необходимо (не внешняя ссылка).

Я искал несколько часов и не могу найти какой-либо согласованной документациидля статей, которые достигают этого.Большинство потенциальных клиентов, похоже, говорят о «EmbeddedPackageParts».

Если у кого-нибудь есть какие-либо полезные статьи или они могут дать некоторую ясность, это будет оценено.

Приветствия, Дункан.

1 Ответ

0 голосов
/ 17 октября 2018

Я понял это!

Шаги: 1. Создайте файл xlsx с моими данными в нем.2. Сохраните файл xlsx локально 3. В моем текстовом документе создайте новую часть диаграммы и сгенерируйте содержимое графика

ChartPart wordChartPart = document.MainDocumentPart.AddNewPart<ChartPart>();
string wordChartId = document.MainDocumentPart.GetIdOfPart(wordChartPart);

WordDocumentBuilder.Workflows.SpreadsheetUtils.GenerateBarChartPart(wordChartPart, categories, dataRows);

Вставить электронную таблицу в ChartPart

EmbeddedPackagePart embeddedObjectPart = wordChartPart.AddEmbeddedPackagePart (@ "application / vnd.openxmlformats-officedocument.spreadsheetml.sheet");

с использованием (1009 * *1010* с использованием (1009 * *1010* с использованиемstream = new FileStream (file, FileMode.Open)) {byte [] documentBytes = новый байт [stream.Length];

stream.Read(documentBytes, 0, documentBytes.Length);

using (BinaryWriter writer = new BinaryWriter(embeddedObjectPart.GetStream()))
{
    writer.Write(documentBytes);
    writer.Flush();
}

}

Я мог бызатем вставьте Inline Drawing в документ Word, который ссылается на часть диаграммы.

...