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 zu steuern, das die Implementierung des IStreamProvider-Interface übernimmt. Wenn Sie versuchen, Ihr Arbeitsblatt mit externen Ressourcen wie verknüpften Bildern zu rendern, werden die Methoden des IStreamProvider-Interfaces aufgerufen, um Ihnen die Möglichkeit zu geben, angemessene Maßnahmen für Ihre externen Ressourcen zu ergreifen.

Externe Ressourcen mithilfe von WorkbookSetting.StreamProvider steuern

Im folgenden Beispielcode wird die Verwendung von Workbook.Settings.StreamProvider erläutert. Es lädt die Beispiel-Excel-Datei mit einem verknüpften Bild und ersetzt das verknüpfte Bild durch das Aspose-Logo. Anschließend rendert der Code das gesamte Blatt mit der SheetRender-Klasse in ein einzelnes Bild. Der folgende Screenshot zeigt die Beispiel-Excel-Datei und ihr gerendertes Ausgabebild zur Referenz. Wie Sie sehen können, wurde das defekte verknüpfte Bild durch das Aspose-Logo ersetzt.

todo:image_alt_text

Beispielcode

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Implementation of IStreamProvider
class SP implements IStreamProvider
{
public void closeStream(StreamProviderOptions arg0) throws Exception {
}
public void initStream(StreamProviderOptions options) throws Exception {
//Open the filestream of Aspose Logo and assign it to StreamProviderOptions.Stream property
File imgFile = new File(srcDir + "sampleControlExternalResourcesUsingWorkbookSetting_StreamProvider.png");
byte[] bts = new byte[(int) imgFile.length()];
FileInputStream fin = new FileInputStream(imgFile);
fin.read(bts);
fin.close();
ByteArrayOutputStream baout = new ByteArrayOutputStream();
baout.write(bts);
baout.close();
options.setStream(baout);
}
}
public void Run() throws Exception {
System.out.println("Aspose.Cells for Java Version: " + CellsHelper.getVersion());
//String srcDir = Utils.Get_SourceDirectory();
//String outDir = Utils.Get_OutputDirectory();
//Load sample Excel file containing the external resource e.g. linked image etc.
Workbook wb = new Workbook(srcDir + "sampleControlExternalResourcesUsingWorkbookSetting_StreamProvider.xlsx");
//Provide your implementation of IStreamProvider
wb.getSettings().setStreamProvider(new SP());
//Access first worksheet
Worksheet ws = wb.getWorksheets().get(0);
//Specify image or print options, we need one page per sheet and png output
ImageOrPrintOptions opts = new ImageOrPrintOptions();
opts.setOnePagePerSheet(true);
opts.setImageType(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, outDir + "outputControlExternalResourcesUsingWorkbookSettingStreamProvider.png");
// Print the message
System.out.println("ControlExternalResourcesUsingWorkbookSetting_StreamProvider executed successfully.");
}
public static void main(String[] args) throws Exception {
new ControlExternalResourcesUsingWorkbookSetting_StreamProvider().Run();
}