Ändra datakällan för diagrammet till destinationskalkylbladet samtidigt som du kopierar rader eller område

Möjliga användningsscenario

När du kopierar rader eller område som innehåller diagram till ny arbetsblad, ändras inte datakällan för diagrammet. Till exempel, om datakällan för diagrammet är =Ark1!$A$1:$B$4, kommer efter kopiering av rader eller område till nytt arbetsblad, kommer datakällan fortfarande förbli densamma dvs =Ark1!$A$1:$B$4. Det hänvisar fortfarande till det gamla arbetsbladet dvs. Ark1. Detta är också Microsoft Excel-beteendet. Men om du vill att det ska hänvisa till det nya destinationsarket, vänligen använd CopyOptions.ReferToDestinationSheet-egenskapen och ställa in den till true vid anropet Cells.CopyRows() metoden. Nu om ditt destinationsark är DestSheet, kommer datakällan för ditt diagram att ändra från =Ark1!$A$1:$B$4 till =DestSheet!$A$1:$B$4.

Ändra datakällan för diagrammet till destinationskalkylbladet samtidigt som du kopierar rader eller område

Följande exempelkod förklarar användningen av CopyOptions.ReferToDestinationSheet-egenskapen när du kopierar rader eller område som innehåller diagram till nytt arbetsblad. Koden använder den prov Excel-filen och genererar den utdata Excel-filen. Skärmbilden visar att datakällan för diagrammet i utdata Excel-filen nu hänvisar till DestSheet istället för 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);