Управление внешними ресурсами с помощью WorkbookSetting.StreamProvider
Возможные сценарии использования
Иногда ваш файл Excel содержит внешние ресурсы, например, связанные изображения и т. Д. Aspose.Cells позволяет управлять этими внешними ресурсами с помощью Workbook.Settings.StreamProvider, который принимает реализацию интерфейса IStreamProvider. Всякий раз, когда вы попытаетесь отобразить свой лист, содержащий внешние ресурсы, например, связанные изображения, будут вызваны методы интерфейса IStreamProvider, что позволит вам принять соответствующие меры по отношению к внешним ресурсам.
Управление внешними ресурсами с помощью WorkbookSetting.StreamProvider
Следующий пример кода объясняет использование Workbook.Settings.StreamProvider. Он загружает образец файла Excel, содержащий связанное изображение. Код заменяет связанное изображение на логотип Aspose и отображает весь лист в одно изображение, используя класс SheetRender. Ниже приведен скриншот образца файла 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."); | |
} | |
} |