Open XML SDK: открытие шаблона Word и сохранение под другим именем файла - PullRequest
3 голосов
/ 23 июля 2010

Это одна очень простая вещь, я не могу найти правильную технику.Я хочу открыть шаблон .dotx, внести некоторые изменения и сохранить под тем же именем, но с расширением .docx.Я могу сохранить документ WordprocessingDocument, но только в том месте, откуда он загружен.Я попытался вручную создать новый документ с помощью WordprocessingDocument с внесенными изменениями, но пока ничего не получилось, я попробовал MainDocumentPart.Document.WriteTo(XmlWriter.Create(targetPath)); и только что получил пустой файл.

Какой правильный путь здесь?Является ли файл .dotx особенным или просто другим документом в отношении SDK - должен ли я просто скопировать шаблон в место назначения, а затем открыть , который , внести изменения и сохранить?У меня были некоторые опасения, если мое приложение вызывается с двух клиентов одновременно, если оно может открыть один и тот же файл .dotx дважды ... в этом случае создание копии было бы целесообразно в любом случае ... но для собственного любопытства я все еще хочучтобы знать, как сделать «Сохранить как».

1 Ответ

6 голосов
/ 28 июля 2010

Я бы предложил использовать File.IO, чтобы скопировать файл dotx в файл docx и внести в него изменения, если это подходит для вашей ситуации. Есть также функция ChangeDocumentType, которую вам придется вызывать, чтобы предотвратить ошибку в новом файле docx.

            File.Copy(@"\path\to\template.dotx", @"\path\to\template.docx");

            using(WordprocessingDocument newdoc = WordprocessingDocument.Open(@"\path\to\template.docx", true))
            {
                newdoc.ChangeDocumentType(WordprocessingDocumentType.Document);
                //manipulate document....
            }
...