Cambie la fuente de datos del gráfico a la hoja de trabajo de destino al copiar filas o rango

Posibles escenarios de uso

Cuando copia filas o rangos que contienen gráficos en una nueva hoja de trabajo, la fuente de datos del gráfico no cambia. Por ejemplo, si la fuente de datos del gráfico es =Hoja1!$A$1:$B$4, luego de copiar las filas o el rango a la nueva hoja de trabajo, la fuente de datos seguirá siendo la misma, es decir, =Hoja1!$A$1:$B$4. Todavía se refiere a la hoja de trabajo anterior, es decir, Sheet1. Este es también el comportamiento en Microsoft Excel. Pero si desea que se refiera a la nueva hoja de cálculo de destino, utilice elCopyOptions.ReferToDestinationSheetpropiedad y establecerlo enverdadero mientras llama alCells.Copiar filas()método. Ahora, si su hoja de cálculo de destino es DestSheet, la fuente de datos de su gráfico cambiará de =Sheet1!$A$1:$B$4 a =DestSheet!$A$1:$B$4.

Cambie la fuente de datos del gráfico a la hoja de trabajo de destino al copiar filas o rango

El siguiente código de ejemplo explica el uso deCopyOptions.ReferToDestinationSheet propiedad al copiar filas o rangos que contienen gráficos a una nueva hoja de trabajo. El código utiliza elejemplo de archivo de Excel y genera laarchivo de salida de Excel.

todo:imagen_alternativa_texto

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