التحكم في الموارد الخارجية باستخدام WorkbookSetting.StreamProvider
سيناريوهات الاستخدام المحتملة
في بعض الأحيان، يحتوي ملف Excel الخاص بك على موارد خارجية مثل الصور المرتبطة، إلخ. تسمح Aspose.Cells لك بالتحكم في هذه الموارد الخارجية باستخدام Workbook.Settings.StreamProvider الذي يأخذ تنفيذ IStreamProvider واجهة. كلما حاولت استعراض ورقة العمل الخاصة بك التي تحتوي على موارد خارجية مثل الصور المرتبطة، ستتم استدعاء طرق واجهة IStreamProvider والتي ستمكنك من اتخاذ إجراءات مناسبة للموارد الخارجية.
التحكم في الموارد الخارجية باستخدام WorkbookSetting.StreamProvider
الرمز المصدري التالي يشرح استخدام Workbook.Settings.StreamProvider. يحمل ملف Excel المثال الذي يحتوي على صورة مرتبطة. يستبدل الرمز المصدري الصورة المرتبطة بـ شعار Aspose ويقوم بعرض الورقة بأكملها في صورة واحدة باستخدام فئة SheetRender. تُظهر اللقطة الشاشية التالية ملف Excel المثال وصورة الإخراج المُقدمة للإشارة. كما يمكنك رؤية استبدال الصورة المرتبطة المعطوبة بشعار Aspose.
الكود المثالي
// 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(); | |
} |