Ändern Sie die Datenquelle des Diagramms in das Zieltabellenblatt beim Kopieren von Zeilen oder Bereich

Mögliche Verwendungsszenarien

Wenn Sie Zeilen oder einen Bereich kopieren, der Diagramme enthält, und in ein neues Arbeitsblatt einfügen, ändert sich die Datenquelle des Diagramms nicht. Wenn beispielsweise die Datenquelle des Diagramms =Sheet1!$A$1:$B$4 ist, dann bleibt die Datenquelle nach dem Kopieren von Zeilen oder Bereich in ein neues Arbeitsblatt gleich, d.h. =Sheet1!$A$1:$B$4. Es bezieht sich immer noch auf das alte Arbeitsblatt, d.h. Sheet1. Dies ist auch das Verhalten in Microsoft Excel. Wenn Sie jedoch möchten, dass sie sich auf das neue Zielarbeitsblatt bezieht, verwenden Sie die CopyOptions.ReferToDestinationSheet-Eigenschaft und setzen Sie sie auf true bei Aufruf der Cells.CopyRows()-Methode. Jetzt, wenn Ihr Zielarbeitsblatt DestSheet ist, ändert sich die Datenquelle Ihres Diagramms von =Sheet1!$A$1:$B$4 in =DestSheet!$A$1:$B$4.

Ändern der Datenquelle des Diagramms zur Zieltabelle beim Kopieren von Zeilen oder Bereichen

Der folgende Beispielcode erläutert die Verwendung der CopyOptions.ReferToDestinationSheet-Eigenschaft beim Kopieren von Zeilen oder Bereich mit Diagrammen in ein neues Arbeitsblatt. Der Code verwendet die Beispieldatei Excel und generiert die Ausgabedatei Excel.

todo:image_alt_text

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Load sample excel file
Workbook wb = new Workbook(dataDir + "sample.xlsx");
// Access the first sheet which contains chart
Worksheet source = wb.Worksheets[0];
// Add another sheet named DestSheet
Worksheet destination = wb.Worksheets.Add("DestSheet");
// Set CopyOptions.ReferToDestinationSheet to true
CopyOptions options = new CopyOptions();
options.ReferToDestinationSheet = 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.Cells.CopyRows(source.Cells, 0, 0, source.Cells.MaxDisplayRange.RowCount, options);
// Save workbook in xlsx format
wb.Save(dataDir + "output_out.xlsx", SaveFormat.Xlsx);