Экспорт Excel на страницу VF - изображение не отображается при использовании динамического c URL-адреса изображения - PullRequest
1 голос
/ 18 июня 2020

Я экспортирую страницу VF как документ Excel. Пока я экспортирую файл Excel, ячейка изображения содержит пустые данные. Ниже приведен код моей страницы VF. Он работает нормально, если я использую stati c url (<img alt="Image" src="https://myorgurl/resource/DefaultProfileImage" />) вместо Dynami c URL изображения.

<apex:page controller="Users_Profile" contentType="application/vnd.ms-excel#Users.xls">
<table border="0" cellspacing="0" cellpadding="0" style="width:100%;">
    <thead>
        <tr>
            <th>Profile Image</th>
            <th>Name</th>
            <th>City</th>
            <th>State</th>
        </tr>
    </thead>
    <tbody>
        <apex:repeat value="{!lstUsers}" var="user">
            <tr>
                <td>
                    <image alt="Image" src="{!BaseUrl}{!URLFOR($Resource.DefaultProfileImage)}" />
                </td>
                <td>{!user.Name}</td>
                <td>{!user.City__c}</td>
                <td>{!user.State__c}</td>
            </tr>
        </apex:repeat>
    </tbody>
</table>

Вместо этого я пробовал структуру XML из HTML тегов на странице VF, чтобы решить эту проблему, но это не работает.

Ответы [ 2 ]

2 голосов
/ 18 июня 2020

Stati c ресурсы отображаются нормально, только если «браузер» успешно выполнил вход в Salesforce. Подумайте об этом, в такой ссылке, как https://eu1.salesforce.com/resources/DefaultProfileImage, нет ничего глобально уникального. Excel не может загрузить изображение. Go на URL-адрес вашего изображения в приватном просмотре (режим инкогнито), он не будет отображаться как ОК, пока вы не войдете в систему. Это похоже на шаблоны электронной почты, которые используют ресурсы или страницы VF, генерирующие PDF-файлы с изображениями.

Вам нужно чтобы загрузить изображение в Документы (переключитесь на SF Classi c UI), установите флажок «изображение, доступное извне», и созданная ссылка будет иметь вид https://instance.content.force.com/servlet/servlet.ImageServer?id=015...&oid=00D.... Он достаточно уникален в глобальном масштабе, он содержит идентификатор вашей организации и идентификатор записи документа.

Вы также можете загрузить изображение в другое место (Heroku?), Создать сайт в Salesforce или сообществе и ссылаться на него как на publi c url вроде этого ... В основном все, чтобы изображение было доступно без входа в систему.

1 голос
/ 18 июня 2020

Я согласен с ответом Eyescream. В дополнение к этому вы можете создать документ «Внешне доступное изображение» и загрузить в него свое изображение. Теперь вы можете получить доступ к своему изображению без входа в систему Salesforce.

Используйте следующие шаги для создания документа.

  1. Go на вкладку «Документы» в salesforce
  2. Нажмите «Новый документ»
  3. Введите имя документа и другие данные
  4. Установите флажок «Изображение, доступное для внешних пользователей»
  5. Загрузить изображение и нажмите кнопку «Сохранить»

Вы получите предварительный просмотр изображения, и вы сможете использовать этот URL-адрес изображения вне отдела продаж.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...