Cambia l'origine dati del grafico nel foglio di lavoro di destinazione durante la copia di righe o intervalli
Possibili scenari di utilizzo
Quando copi 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, dopo aver copiato le righe o l’intervallo nel nuovo foglio di lavoro, l’origine dati rimarrà la stessa, ovvero =Foglio1!$A$1:$B$4. Si riferisce ancora al vecchio foglio di lavoro, ad esempio Foglio1. Questo è anche il comportamento di Excel Microsoft. Ma se vuoi che faccia riferimento al nuovo foglio di lavoro di destinazione, usa la proprietà CopyOptions.ReferToDestinationSheet e impostala su true mentre chiami il metodo Cells.CopyRows(). Ora, se il foglio di lavoro di destinazione è DestSheet, l’origine dati del grafico cambierà da =Sheet1!$A$1:$B$4 a =DestSheet!$A$1:$B$4.
Cambia l’origine dati del grafico nel foglio di lavoro di destinazione durante la copia di righe o intervalli
Il codice di esempio seguente illustra l’utilizzo della proprietà CopyOptions.ReferToDestinationSheet durante la copia di righe o intervalli contenenti il grafico in un nuovo foglio di lavoro. Il codice utilizza ilfile excel di esempio e genera ilfile excel di output . Lo screenshot mostra che l’origine dati del grafico infile excel di output ora si riferisce a DestSheet anziché a Sheet1.
// 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); |