Satırları veya Aralığı Kopyalarken Grafiğin Veri Kaynağını Hedef Çalışma Sayfasına Değiştirin

Olası Kullanım Senaryoları

Grafikleri içeren satırları veya aralığı yeni çalışma sayfasına kopyaladığınızda, grafiğin veri kaynağı değişmez. Örneğin, grafiğin veri kaynağı =Sayfa1!$A$1:$B$4 ise, satırları veya aralığı yeni çalışma sayfasına kopyaladıktan sonra, veri kaynağı aynı kalacaktır, yani =Sayfa1!$A$1:$B$4. Hala eski çalışma sayfasına, yani Sayfa1’e atıfta bulunuyor. Bu aynı zamanda Microsoft Excel davranışıdır. Ancak yeni hedef çalışma sayfasına atıfta bulunmasını istiyorsanız, lütfen CopyOptions.ReferToDestinationSheet özelliğini kullanın ve Cells.CopyRows() yöntemini çağırırken bunu doğru olarak ayarlayın. Şimdi, hedef çalışma sayfanız DestSheet ise, grafiğinizin veri kaynağı =Sheet1!$A$1:$B$4 iken =DestSheet!$A$1:$B$4 olarak değişir.

Satırları veya Aralığı Kopyalarken Grafiğin Veri Kaynağını Hedef Çalışma Sayfasına Değiştirin

Aşağıdaki örnek kod, grafiği içeren satırları veya aralığı yeni çalışma sayfasına kopyalarken CopyOptions.ReferToDestinationSheet özelliğinin kullanımını açıklar. kod kullanırörnek excel dosyası ve oluştururçıktı excel dosyası . Ekran görüntüsü, grafiğin veri kaynağınınçıktı excel dosyası artık Sayfa1 yerine DestSheet’i ifade ediyor.

yapılacaklar:resim_alternatif_metin

// 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);