Ändra datakälla för diagrammet till målarbetsblad medan du kopierar rader eller intervall

Möjliga användningsscenarier

När du kopierar rader eller intervall som innehåller diagram till ett nytt kalkylblad, ändras inte datakällan för diagrammet. Till exempel, om datakällan för diagrammet är =Sheet1!$A$1:$B$4, efter kopiering av rader eller intervall till nytt kalkylblad, kommer datakällan att förbli densamma, dvs. =Sheet1!$A$1:$B$4. Det hänvisar fortfarande till det gamla kalkylbladet, dvs. Sheet1. Detta är också beteendet i Microsoft Excel. Men om du vill att det ska referera till det nya destinationsarbetsbladet, användCopyOptions.ReferToDestinationSheetegendom och ställ in den påSann medan du ringer tillCells.CopyRows()metod. Om ditt målark är DestSheet kommer datakällan för ditt diagram att ändras från =Sheet1!$A$1:$B$4 till =DestSheet!$A$1:$B$4.

Ändra datakälla för diagrammet till målarbetsblad medan du kopierar rader eller intervall

Följande exempelkod förklarar användningen avCopyOptions.ReferToDestinationSheet egenskap medan du kopierar rader eller intervall som innehåller diagram till ett nytt kalkylblad. Koden använderexempel på excel-fil och genereraroutput excel-fil.

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