Visual Studio VSTO-Надстройка. Как я могу иметь уникальный идентификатор документа (идентификатор базы данных) в своем документе MS Word, когда он загружается из веб-приложения? - PullRequest
0 голосов
/ 20 октября 2019

Наша Вертикальная SaaS ERP позволяет пользователям управлять документами. Через веб-приложение (документы загружаются непосредственно из веб-интерфейса) также имеется надстройка MS Word VSTO, которая позволяет сохранять документы в облаке из MS Word непосредственно в облако с определенным отображением / логикой базы данных.

Вопрос:

Могу ли я иметь уникальный идентификатор (строка 122424-3213-23423423) в моем документе MS Word (идентификатор базы данных) при загрузке из веб-приложения?

Зачем мне нужноэто (уникальный идентификатор)?

Я буду использовать этот идентификатор при обновлении документа из MS Word для сопоставления / обновления правильного документа.

Любая помощь очень важна для этого.

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Код на стороне сервера (.NET Core) Когда какой-либо документ MS Office загружается из веб-приложения, я записываю соответствующий идентификатор базы данных в метатег документа. Этот идентификатор полезен для меня в моей надстройке VSTO для обновления существующего документа.

См. , чтобы создать SetCustomProperty

public async Task SetCustomTag(string documentPath)
    {
         OpenXmlUtils.SetCustomProperty(documentPath, "CUSTOM-ID", "111-222-23333", OpenXmlUtils.PropertyTypes.Text);
    }

VSTO Add-В

public static string GetCustomMetaTagId(Document document)
    {
        Microsoft.Office.Core.DocumentProperties prps = (Microsoft.Office.Core.DocumentProperties)document.CustomDocumentProperties;

        string customId = "";

        try
        {
            customId  = prps != null && prps["CUSTOM-ID"] != null ? prps["CUSTOM-ID"].Value : "";
        }
        catch (Exception)
        {

        }

        return customId  ;
    }
0 голосов
/ 20 октября 2019

Насколько я понимаю, вы хотели бы добавить некоторые метаданные в документы Word.

Вы можете использовать CustomDocumentProperties .

Как правило, это словарь (ключ / значение), который хранится в документе и доступен через взаимодействие Word.

Позволяет сказать, что имя вашего свойства - "DatabaseId".

Получить коллекцию свойств:

var props = (Office.DocumentProperties)app.ActiveDocument.CustomDocumentProperties

Итак, используйте этот код, чтобы установить значение:

props.Add("DatabaseId", false, Microsoft.Office.Core
            .MsoDocProperties.msoPropertyTypeString, "122424-3213-23423423");

Получить значение:

props["DatabaseId"].Value
...