WorkbookSetting.StreamProvider Kullanarak Harici Kaynakları Kontrol Etme
Olası Kullanım Senaryoları
Bazen, Excel dosyanız harici kaynaklar içerir, ör. bağlantılı resimler. Aspose.Cells, Workbook.Settings.StreamProvider kullanarak bu harici kaynakları kontrol etmenize olanak tanır, IStreamProvider arabiriminin uygulamasını alır. Harici kaynak içeren çalışsayınızı oluşturmaya çalıştığınızda, ör. bağlantılı resimler, IStreamProvider arabirimine ait yöntemler çağrılacak ve harici kaynaklarınız için uygun adımları atmanıza olanak tanıyacaktır.
WorkbookSetting.StreamProvider Kullanarak Harici Kaynakları Kontrol Etme
Aşağıdaki örnek kod, Workbook.Settings.StreamProvider kullanımını açıklar. Bağlantılı bir resim içeren örnek Excel dosyasını yükler. Kod, bağlantılı resmi Aspose Logosu ile değiştirir ve tüm sayfayı tek bir resim olarak SheetRender sınıfını kullanarak render eder. Aşağıdaki ekran görüntüsü, örnek Excel dosyasını ve bir referans için render edilmiş çıktı resmini gösterir. Görebileceğiniz gibi, bozuk bağlantılı resim, Aspose Logosu ile değiştirilmiştir.
Örnek Kod
// 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(); | |
} |