Générer un graphique en traitant des marqueurs intelligents

Création d’une feuille de calcul Designer

Une feuille de calcul de concepteur est un simple fichier Excel créé avec l’application Excel Microsoft ou les API Aspose.Cells contenant le formatage visuel, les formules et les marqueurs intelligents, où le contenu doit être rempli au moment de l’exécution.

Par souci de simplicité, nous allons créer la feuille de calcul du concepteur à l’aide du Aspose.Cells for Java API, puis la traiter par rapport à une source de données créée dynamiquement à des fins de démonstration.

Java

 //Create an instance of Workbook

Workbook book = new Workbook();

//Access the first (default) Worksheet from the collection

Worksheet dataSheet = book.getWorksheets().get(0);

//Name the first Worksheet for referencing

dataSheet.setName("ChartData");

//Access the CellsCollection of ChartData Worksheet

Cells cells = dataSheet.getCells();

//Place the markers in the Worksheet according to desired layout

cells.get("A1").putValue("&=$Headers(horizontal)");

cells.get("A2").putValue("&=$Year2000(horizontal)");

cells.get("A3").putValue("&=$Year2005(horizontal)");

cells.get("A4").putValue("&=$Year2010(horizontal)");

cells.get("A5").putValue("&=$Year2015(horizontal)");

Si vous enregistrez la feuille de calcul résultante à ce stade, les données de la feuille de calcul se présenteront comme suit.

tâche : image_autre_texte

Feuille de calcul du concepteur de traitement

Afin de traiter la feuille de calcul du concepteur, nous devons disposer d’une source de données correspondant aux marqueurs intelligents utilisés dans la feuille de calcul du concepteur. Par exemple, nous avons créé une entrée Smart Marker comme**&=$En-têtes(horizontal)** qui représente la variable par son nom Headers alors que la clé**(horizontal)** suggère que les données doivent être renseignées horizontalement.

Afin de démontrer ce cas d’utilisation, nous allons créer la source de données à partir de zéro et la traiter par rapport à la feuille de calcul du concepteur créée à l’étape précédente. Cependant, dans un scénario en temps réel, les données peuvent déjà être disponibles pour un traitement ultérieur, vous pouvez donc ignorer la création de la source de données si les données sont déjà disponibles.

Java

 //Create string arrays which will serve as data sources to the smart markers

String[]headers = new String[]{"", "Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7", "Item 8", "Item 9", "Item 10", "Item 11", "Item 12"};

String[]year2000 = new String[]{"2000", "310", "0", "110", "15", "20", "25", "30", "1222", "200", "421", "210", "133"};

String[]year2005 = new String[]{"2005", "508", "0", "170", "280", "190", "400", "105", "132", "303", "199", "120", "100"};

String[]year2010 = new String[]{"2010", "0", "210", "230", "1420", "1530", "160", "170", "110", "199", "129", "120", "230"};

String[]year2015 = new String[]{"2015", "2818", "320", "340", "260", "210", "310", "220", "0", "0", "0", "0", "122"};

Le traitement des marqueurs intelligents est assez simple comme suit.

Java

 //Create an instance of WorkbookDesigner

WorkbookDesigner designer = new WorkbookDesigner();

//Set the Workbook property for the instance of WorkbookDesigner

designer.setWorkbook(book);

//Set data sources for smart markers

designer.setDataSource("Headers", headers);

designer.setDataSource("Year2000", year2000);

designer.setDataSource("Year2005", year2005);

designer.setDataSource("Year2010", year2010);

designer.setDataSource("Year2015", year2015);

//Process the designer spreadsheet against the provided data sources

designer.process();

Si vous enregistrez la feuille de calcul à ce stade, les données se présenteront comme suit.

tâche : image_autre_texte

Création de graphique

Une fois les données en place, tout ce que nous avons à faire est de créer un graphique basé sur la source de données. Afin de garder l’exemple simple, nous utiliserons la méthode Chart.setChartDataRange afin de ne pas avoir à configurer davantage le graphique.

Le graphique final se présente comme suit.

tâche : image_autre_texte