Contrôler les ressources externes à l aide de WorkbookSetting.StreamProvider
Scénarios d’utilisation possibles
Parfois, votre fichier Excel contient des ressources externes telles que des images liées, etc. Aspose.Cells vous permet de contrôler ces ressources externes à l’aide de Workbook.Settings.StreamProvider qui prend en charge l’implémentation de l’interface IStreamProvider. Chaque fois que vous essayez de rendre votre feuille de calcul contenant des ressources externes telles que des images liées, les méthodes de l’interface IStreamProvider seront invoquées, ce qui vous permettra de prendre les mesures appropriées pour vos ressources externes.
Contrôler les ressources externes à l’aide de WorkbookSetting.StreamProvider
Le code d’exemple suivant explique l’utilisation de Workbook.Settings.StreamProvider. Il charge le fichier Excel d’exemple contenant une image liée. Le code remplace l’image liée par le logo Aspose et rend l’ensemble de la feuille dans une seule image en utilisant la classe SheetRender. La capture d’écran suivante montre le fichier Excel d’exemple et son image de sortie rendue pour référence. Comme vous pouvez le voir, l’image liée non prise en charge a été remplacée par le logo Aspose.
Code d’exemple
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
class ControlExternalResourcesUsingWorkbookSetting_StreamProvider | |
{ | |
//Source directory | |
static string sourceDir = RunExamples.Get_SourceDirectory(); | |
//Output directory | |
static string outputDir = RunExamples.Get_OutputDirectory(); | |
//Implementation of IStreamProvider | |
class SP : IStreamProvider | |
{ | |
public void CloseStream(StreamProviderOptions options) | |
{ | |
} | |
public void InitStream(StreamProviderOptions options) | |
{ | |
//string sourceDir = RunExamples.Get_SourceDirectory(); | |
//Open the filestream of Aspose Logo and assign it to StreamProviderOptions.Stream property | |
FileStream fi = new FileStream(sourceDir + "sampleControlExternalResourcesUsingWorkbookSetting_StreamProvider.png", FileMode.OpenOrCreate, FileAccess.Read); | |
options.Stream = fi; | |
} | |
} | |
public static void Run() | |
{ | |
//Load sample Excel file containing the external resource e.g. linked image etc. | |
Workbook wb = new Workbook(sourceDir + "sampleControlExternalResourcesUsingWorkbookSetting_StreamProvider.xlsx"); | |
//Provide your implementation of IStreamProvider | |
wb.Settings.ResourceProvider = new SP(); | |
//Access first worksheet | |
Worksheet ws = wb.Worksheets[0]; | |
//Specify image or print options, we need one page per sheet and png output | |
ImageOrPrintOptions opts = new ImageOrPrintOptions(); | |
opts.OnePagePerSheet = true; | |
opts.ImageType = 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, outputDir + "outputControlExternalResourcesUsingWorkbookSetting_StreamProvider.png"); | |
Console.WriteLine("ControlExternalResourcesUsingWorkbookSetting_StreamProvider executed successfully."); | |
} | |
} |