Динамическое добавление гиперссылок и закладок с помощью C#

Гиперссылки и закладки удобны для пользователей, чтобы быстро перемещаться по соответствующему контенту. Когда мы щелкаем гиперссылку, она открывает URL-адрес в браузере или переходит к указанному местоположению закладки в документе. В этой статье мы узнаем, как динамически добавлять гиперссылки и закладки в отчеты с помощью C#.

В этой статье должны быть раскрыты следующие темы:

Для динамического добавления гиперссылок и закладок в отчеты мы будем использовать API GroupDocs.Assembly for .NET. Он позволяет создавать мощные приложения для автоматизации документов и создания отчетов. Он извлекает данные из источника данных в соответствии с определенным шаблоном документа, собирает их и создает отчеты в указанном формате вывода. Пожалуйста, либо скачайте DLL API, либо установите его с помощью NuGet.

PM> Install-Package GroupDocs.Assembly

Мы можем динамически вставлять гиперссылки в отчеты, используя теги ссылок. Мы можем использовать тег ссылки в документе шаблона, как показано ниже:

<<link [uri_expression][display_text_expression]>>

Выражение uri определяет URI для гиперссылки, тогда как выражение displaytextexpression определяет текст, который будет отображаться для гиперссылки.

Мы можем динамически вставлять гиперссылки на отчеты, выполнив следующие шаги:

  1. Создайте экземпляр класса DocumentAssembler.
  2. Вызовите метод AssembleDocument(), чтобы собрать документ. В качестве аргументов он принимает путь к шаблону исходного документа, путь к целевому документу и источник данных.

В следующем примере кода показано, как динамически добавлять гиперссылки с помощью C#.

// В этом примере кода показано, как динамически добавлять гиперссылки.
// Настройка источника 
const string strDocumentTemplate = @"D:\Files\Assembly\Insertinghyperlink.docx";

// Настройка пункта назначения 
const string strDocumentReport = @"D:\Files\Assembly\Insertinghyperlink_out.docx";

// Настройка выражения Uri
const string uriExpression = "https://www.groupdocs.com/";

// Настройка выражения отображаемого текста
const string displayTextExpression = "GroupDocs";

// Создание экземпляра класса DocumentAssembler
DocumentAssembler assembler = new DocumentAssembler();

// Соберите документ 
assembler.AssembleDocument(strDocumentTemplate, strDocumentReport,
    new DataSourceInfo(uriExpression, "uriExpression"),
    new DataSourceInfo(displayTextExpression, "displayTextExpression"));
Добавляйте гиперссылки динамически с помощью C#.

Добавляйте гиперссылки динамически с помощью C#.

Динамическое добавление закладок с помощью C#

Мы можем динамически вставлять закладки в отчеты, используя теги закладок. Мы можем использовать тег закладки в документе шаблона, как показано ниже:

<<bookmark [bookmark_expression]>>
bookmarked_content
<</bookmark>>

Выражение bookmark определяет имя вставляемой закладки.

Мы можем динамически вставлять закладки в отчеты, выполнив следующие шаги:

  1. Создайте экземпляр класса DocumentAssembler.
  2. Вызовите метод AssembleDocument(), чтобы собрать документ. В качестве аргументов он принимает путь к шаблону исходного документа, путь к целевому документу и источник данных.

В следующем примере кода показано, как динамически добавлять закладки с помощью C#.

// В этом примере кода показано, как динамически добавлять закладки.
// Настройка источника 
const string strDocumentTemplate = @"D:\Files\Assembly\Insertingbookmark.xlsx";

// Настройка пункта назначения 
const string strDocumentReport = @"D:\Files\Assembly\Insertingbookmark_out.xlsx";

// Настройка выражения Uri
const String bookmark_expression = "gd_bookmark";

// Настройка выражения отображаемого текста
const String displayTextExpression = "GroupDocs";

// Создание экземпляра класса DocumentAssembler
DocumentAssembler assembler = new DocumentAssembler();

// Соберите документ 
assembler.AssembleDocument(strDocumentTemplate, strDocumentReport,
    new DataSourceInfo(bookmark_expression, "bookmark_expression"),
    new DataSourceInfo(displayTextExpression, "displayTextExpression"));

Мы также можем связать закладки с гиперссылками в документе, выполнив шаги, упомянутые ранее. Однако нам просто нужно установить одно и то же значение для uriExpression и bookmarkexpression, как показано ниже:

const string bookmark_expression = "gd_bookmark";
const String uriExpression = "gd_bookmark";

В следующем примере кода показано, как вставить закладку в виде гиперссылки с помощью C#.

// В этом примере кода показано, как добавить закладку в виде гиперссылки.
// Настройка источника 
const string strDocumentTemplate = @"D:\Files\Assembly\input.docx";

// Настройка пункта назначения 
const string strDocumentReport = @"D:\Files\Assembly\output.docx";

// Настройка выражения Uri
const string bookmark_expression = "gd_bookmark";

// Настройка выражения отображаемого текста
const string displayTextExpression = "GroupDocs";

// Настройка выражения Uri
const String uriExpression = "gd_bookmark";

// Настройка выражения отображаемого текста
const String uriTextExpression = "GroupDocs";

// Создание экземпляра класса DocumentAssembler
DocumentAssembler assembler = new DocumentAssembler();

// Соберите документ 
assembler.AssembleDocument(strDocumentTemplate, strDocumentReport,
                           new DataSourceInfo(uriExpression, "uriExpression"), 
                           new DataSourceInfo(uriTextExpression, "uriTextExpression"),
                           new DataSourceInfo(bookmark_expression, "bookmark_expression"),
                           new DataSourceInfo(displayTextExpression, "displayTextExpression"));
Вставьте закладку как гиперссылку с помощью C#.

Вставьте закладку как гиперссылку с помощью C#.

Получить бесплатную лицензию

Пожалуйста, попробуйте API без ознакомительных ограничений, запросив бесплатную временную лицензию.

Вывод

В этой статье мы узнали, как:

  • динамически вставлять гиперссылки и закладки в отчеты с помощью C#;
  • добавить гиперссылку в закладку динамически.

Кроме того, вы можете узнать больше о GroupDcos.Assembly for .NET API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также