Styr externa resurser med WorkbookSetting.StreamProvider
Möjliga användningsscenarier
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 avArbetsbok.Inställningar.StreamProvidersom tar genomförandet avIStreamProvidergränssnitt. Närhelst du försöker rendera ditt kalkylblad som innehåller externa resurser t.ex. länkade bilder, metoderna förIStreamProvidergränssnitt kommer att anropas vilket gör att du kan vidta lämpliga åtgärder för dina externa resurser.
Styr externa resurser med WorkbookSetting.StreamProvider
Följande exempelkod förklarar användningen avArbetsbok.Inställningar.StreamProvider. Den laddarexempel på Excel-filsom innehåller en länkad bild. Koden ersätter den länkade bilden medAspose Logotypoch renderar hela arket till en enda bild med hjälp avSheetRenderklass. Följande skärmdump visar exemplet på Excel-filen och dessrenderad utdatabildför en referens. Som du kan se är den trasiga länkade bilden ersatt med Aspose Logotyp.
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(); | |
} |