Cambiar la fuente de datos del gráfico a la hoja de trabajo de destino al copiar filas o rango
Escenarios de uso posibles
Cuando copia filas o un rango que contiene gráficos a una nueva hoja de cálculo, la fuente de datos del gráfico no cambia. Por ejemplo, si la fuente de datos del gráfico es =Sheet1!$A$1:$B$4, entonces después de copiar filas o un rango a una nueva hoja de cálculo, la fuente de datos seguirá siendo la misma, es decir, =Sheet1!$A$1:$B$4. Todavía se refiere a la hoja de cálculo antigua, es decir, Sheet1. Esto también es el comportamiento en Microsoft Excel. Pero si desea que haga referencia a la nueva hoja de cálculo de destino, entonces por favor utilice la propiedad CopyOptions.ReferToDestinationSheet y ajústela a true al llamar al método Cells.CopyRows(). Ahora, si su hoja de cálculo de destino es DestSheet, entonces la fuente de datos de su gráfico cambiará de =Sheet1!$A$1:$B$4 a =DestSheet!$A$1:$B$4.
Cambiar 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 de la propiedad CopyOptions.ReferToDestinationSheet al copiar filas o un rango que contiene gráficos a una nueva hoja de cálculo. El código utiliza el archivo de Excel de ejemplo y genera el archivo de Excel de salida.
// 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); |