Управление внешними ресурсами с помощью WorkbookSetting.StreamProvider

Возможные сценарии использования

Иногда ваш файл Excel содержит внешние ресурсы, например связанные изображения и т. д. Aspose.Cells позволяет вам управлять этими внешними ресурсами с помощьюWorkbook.Settings.StreamProviderчто предполагает реализациюIStreamProviderинтерфейс. Всякий раз, когда вы пытаетесь отобразить свой рабочий лист, содержащий внешние ресурсы, например связанные изображения, методыIStreamProviderбудет вызван интерфейс, который позволит вам предпринять соответствующие действия для ваших внешних ресурсов.

Управление внешними ресурсами с помощью WorkbookSetting.StreamProvider

Следующий пример кода объясняет использованиеWorkbook.Settings.StreamProvider . Он загружаетобразец файла Excel содержащий связанное изображение. Код заменяет связанное изображение наAspose Логотип и отображает весь лист в одно изображение, используяЛистрендеринг учебный класс. На следующем снимке экрана показан пример файла Excel и еговизуализированное выходное изображение для справки. Как видите, неработающее связанное изображение заменено логотипом Aspose.

дело:изображение_альтернативный_текст

Образец кода

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
class ControlExternalResourcesUsingWorkbookSetting_StreamProvider
{
//Source directory
static string sourceDir = RunExamples.Get_SourceDirectory();
//Output directory
static string outputDir = RunExamples.Get_OutputDirectory();
//Implementation of IStreamProvider
class SP : IStreamProvider
{
public void CloseStream(StreamProviderOptions options)
{
}
public void InitStream(StreamProviderOptions options)
{
//string sourceDir = RunExamples.Get_SourceDirectory();
//Open the filestream of Aspose Logo and assign it to StreamProviderOptions.Stream property
FileStream fi = new FileStream(sourceDir + "sampleControlExternalResourcesUsingWorkbookSetting_StreamProvider.png", FileMode.OpenOrCreate, FileAccess.Read);
options.Stream = fi;
}
}
public static void Run()
{
//Load sample Excel file containing the external resource e.g. linked image etc.
Workbook wb = new Workbook(sourceDir + "sampleControlExternalResourcesUsingWorkbookSetting_StreamProvider.xlsx");
//Provide your implementation of IStreamProvider
wb.Settings.ResourceProvider = new SP();
//Access first worksheet
Worksheet ws = wb.Worksheets[0];
//Specify image or print options, we need one page per sheet and png output
ImageOrPrintOptions opts = new ImageOrPrintOptions();
opts.OnePagePerSheet = true;
opts.ImageType = ImageType.Png;
//Create sheet render by passing required parameters
SheetRender sr = new SheetRender(ws, opts);
//Convert your entire worksheet into png image
sr.ToImage(0, outputDir + "outputControlExternalResourcesUsingWorkbookSetting_StreamProvider.png");
Console.WriteLine("ControlExternalResourcesUsingWorkbookSetting_StreamProvider executed successfully.");
}
}