Modifier la source de données du graphique vers la feuille de destination lors de la copie de lignes ou de plages avec Node.js via C++
Scénarios d’utilisation possibles
Lorsque vous copiez des lignes ou une plage contenant des graphiques vers une nouvelle feuille, la source de données du graphique ne change pas. Par exemple, si la source de données du graphique est =Sheet1!$A$1:$B$4
, alors après la copie, la source de données restera la même, c’est-à-dire =Sheet1!$A$1:$B$4
. Elle continue de faire référence à l’ancienne feuille, c’est-à-dire Sheet1. Ce comportement est également celui de Microsoft Excel. Mais si vous souhaitez qu’elle fasse référence à la nouvelle feuille de destination, utilisez la propriété CopyOptions.getReferToDestinationSheet() et définissez-la sur true lors de l’appel de la méthode Cells.copyRows(Cells, number, number, number). Maintenant, si votre feuille de destination est DestSheet, la source de données de votre graphique passera de =Sheet1!$A$1:$B$4
à =DestSheet!$A$1:$B$4
.
Changer la source de données du graphique vers la feuille de calcul de destination lors de la copie des lignes ou de la plage
Le code d’exemple suivant explique l’utilisation de la propriété CopyOptions.getReferToDestinationSheet() lors de la copie de lignes ou de plages contenant des graphiques vers une nouvelle feuille. Le code utilise le fichier Excel d’exemple et génère le fichier Excel de sortie.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "sample.xlsx");
// Load sample excel file
const wb = new AsposeCells.Workbook(filePath);
// Access the first sheet which contains chart
const source = wb.getWorksheets().get(0);
// Add another sheet named DestSheet
const destination = wb.getWorksheets().add("DestSheet");
// Set CopyOptions.ReferToDestinationSheet to true
const options = new AsposeCells.CopyOptions();
options.setReferToDestinationSheet(true);
// Copy all the rows of source worksheet to destination worksheet which includes chart as well
// The chart data source will now refer to DestSheet
destination.getCells().copyRows(source.getCells(), 0, 0, source.getCells().getMaxDisplayRange().getRowCount(), options);
// Save workbook in xlsx format
wb.save(path.join(dataDir, "output_out.xlsx"), AsposeCells.SaveFormat.Xlsx);