Steuern Sie externe Ressourcen mithilfe von WorkbookSetting.StreamProvider
Mögliche Nutzungsszenarien
Manchmal enthält Ihre Excel-Datei externe Ressourcen, z. B. verknüpfte Bilder usw. Mit Aspose.Cells können Sie diese externen Ressourcen steuernArbeitsmappe.Einstellungen.StreamProviderwas die Umsetzung übernimmtIStreamProviderSchnittstelle. Wann immer Sie versuchen, Ihr Arbeitsblatt mit externen Ressourcen, z. B. verknüpften Bildern, zu rendern, verwenden Sie die Methoden vonIStreamProviderwird eine Schnittstelle aufgerufen, die es Ihnen ermöglicht, geeignete Aktionen für Ihre externen Ressourcen durchzuführen.
Steuern Sie externe Ressourcen mithilfe von WorkbookSetting.StreamProvider
Der folgende Beispielcode erläutert die Verwendung vonArbeitsmappe.Einstellungen.StreamProvider. Es lädt dieBeispiel-Excel-Dateimit einem verlinkten Bild. Der Code ersetzt das verlinkte Bild durchAspose Logound rendert das gesamte Blatt in ein einzelnes Bild mitSheetRenderKlasse. Der folgende Screenshot zeigt die Beispiel-Excel-Datei und ihregerendertes Ausgabebildfür eine Referenz. Wie Sie sehen können, wird das defekte verlinkte Bild durch das Aspose-Logo ersetzt.
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(); | |
} |