Styr externa resurser med hjälp av WorkbookSetting.StreamProvider

Möjliga användningsscenario

Ibland innehåller din Excel-fil externa resurser, t.ex. länkade bilder, etc. Aspose.Cells låter dig styra dessa externa resurser med hjälp av Workbook.Settings.StreamProvider som tar implementeringen av IStreamProvider-gränssnittet. När du försöker rendera ditt arbetsblad som innehåller externa resurser, t.ex. länkade bilder, kommer metoderna i IStreamProvider-gränssnittet att anropas vilket ger dig möjlighet att vidta lämpliga åtgärder för dina externa resurser.

Styr externa resurser med hjälp av WorkbookSetting.StreamProvider

Följande exempelkod förklarar användningen av Workbook.Settings.StreamProvider. Den läser in den exempel-Excel-filen som innehåller en länkad bild. Koden ersätter den länkade bilden med Aspose-logotypen och renderar hela bladet till en enda bild med hjälp av klassen SheetRender. Följande skärmdump visar exempel-Excel-filen och dess renderade bild för referens. Som du kan se ersätts den trasiga länkade bilden med Aspose-logotypen.

todo:image_alt_text

Exempelkod

// 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();
}