Externe Ressourcen mithilfe von WorkbookSetting.StreamProvider steuern
Mögliche Verwendungsszenarien
Manchmal enthält Ihre Excel-Datei externe Ressourcen wie verknüpfte Bilder usw. Aspose.Cells ermöglicht es Ihnen, diese externen Ressourcen mithilfe von Workbook.Settings.StreamProvider, das die Implementierung des IStreamProvider-Interface übernimmt, zu steuern. Immer wenn Sie versuchen, Ihr Arbeitsblatt mit externen Ressourcen wie verknüpften Bildern zu rendern, werden die Methoden des IStreamProvider-Interfaces aufgerufen, die es Ihnen ermöglichen, angemessene Maßnahmen für Ihre externen Ressourcen zu ergreifen.
Externe Ressourcen mithilfe von WorkbookSetting.StreamProvider steuern
Der folgende Beispielcode erläutert die Verwendung des Workbook.Settings.StreamProvider. Er lädt die Beispiel-Excel-Datei mit einem verknüpften Bild. Der Code ersetzt das verknüpfte Bild durch das Aspose-Logo und rendert das gesamte Blatt in ein einzelnes Bild unter Verwendung der Klasse SheetRender. Der folgende Screenshot zeigt die Beispiel-Excel-Datei und ihr gerendertes Ausgabe-Bild zur Referenz. Wie Sie sehen können, wird das defekte verknüpfte Bild durch das Aspose-Logo ersetzt.
Beispielcode
// 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."); | |
} | |
} |