Cambia origine dati del grafico al foglio di lavoro di destinazione durante la copia di righe o intervalli

Possibili Scenari di Utilizzo

Quando si copiano righe o intervalli che contengono grafici in un nuovo foglio di lavoro, l’origine dati del grafico non cambia. Ad esempio, se l’origine dati del grafico è =Foglio1!$A$1:$B$4, allora dopo la copia di righe o intervalli nel nuovo foglio di lavoro, l’origine dati rimarrà la stessa, cioè =Foglio1!$A$1:$B$4. Si fa sempre riferimento al vecchio foglio di lavoro cioè Foglio1. Questo è anche il comportamento di Microsoft Excel. Ma se si vuole che faccia riferimento al nuovo foglio di lavoro di destinazione, utilizzare la proprietà CopyOptions.ReferToDestinationSheet e impostarla su true durante la chiamata al metodo Cells.CopyRows(). Ora se il foglio di lavoro di destinazione è DestSheet, l’origine dati del tuo grafico cambierà da =Foglio1!$A$1:$B$4 a =DestSheet!$A$1:$B$4.

Modifica dell’origine dei dati del grafico al foglio di lavoro di destinazione durante la copia delle righe o dell’intervallo

Il codice di esempio seguente spiega l’uso della proprietà CopyOptions.ReferToDestinationSheet durante la copia di righe o intervalli contenenti il grafico in un nuovo foglio di lavoro. Il codice utilizza il file di esempio Excel e genera il file di Excel di output. La schermata mostra che l’origine dati del grafico nel file di Excel di output ora si riferisce a DestSheet anziché Sheet1.

todo:image_alt_text

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
String dataDir = Utils.getDataDir(ChangeDataSource.class);
// Load sample excel file
Workbook wb = new Workbook(dataDir + "sample.xlsx");
// Access the first sheet which contains chart
Worksheet source = wb.getWorksheets().get(0);
// Add another sheet named DestSheet
Worksheet destination = wb.getWorksheets().add("DestSheet");
// Set CopyOptions.ReferToDestinationSheet to true
CopyOptions options = new 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(dataDir + "output.xlsx", SaveFormat.XLSX);