Mettre à jour les références dans d'autres feuilles de calcul tout en supprimant des colonnes et des lignes vides dans une feuille de calcul
Mettre à jour les références dans d’autres feuilles de calcul tout en supprimant des colonnes et des lignes vides dans une feuille de calcul
Veuillez consulter l’exemple de code suivant et sa sortie de console. La cellule E3 dans la deuxième feuille de calcul a une formule = Sheet1! C3 qui fait référence à la cellule C3 dans la première feuille de calcul. Si vous définissezDeleteOptions.UpdateReference propriété commevrai , cette formule sera mise à jour et deviendra =Sheet1!A1 lors de la suppression des colonnes et des lignes vides dans la première feuille de calcul. Cependant, si vous définissezDeleteOptions.UpdateReference propriété commefaux, la formule dans la cellule E3 de la deuxième feuille de calcul restera =Feuille1!C3 et deviendra invalide.
Exemple de programmation
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Create workbook | |
Workbook wb = new Workbook(); | |
// Add second sheet with name Sheet2 | |
wb.Worksheets.Add("Sheet2"); | |
// Access first sheet and add some integer value in cell C1 | |
// Also add some value in any cell to increase the number of blank rows and columns | |
Worksheet sht1 = wb.Worksheets[0]; | |
sht1.Cells["C1"].PutValue(4); | |
sht1.Cells["K30"].PutValue(4); | |
// Access second sheet and add formula in cell E3 which refers to cell C1 in first sheet | |
Worksheet sht2 = wb.Worksheets[1]; | |
sht2.Cells["E3"].Formula = "'Sheet1'!C1"; | |
// Calculate formulas of workbook | |
wb.CalculateFormula(); | |
// Print the formula and value of cell E3 in second sheet before deleting blank columns and rows in Sheet1. | |
Console.WriteLine("Cell E3 before deleting blank columns and rows in Sheet1."); | |
Console.WriteLine("--------------------------------------------------------"); | |
Console.WriteLine("Cell Formula: " + sht2.Cells["E3"].Formula); | |
Console.WriteLine("Cell Value: " + sht2.Cells["E3"].StringValue); | |
// If you comment DeleteOptions.UpdateReference property below, then the formula in cell E3 in second sheet will not be updated | |
DeleteOptions opts = new DeleteOptions(); | |
opts.UpdateReference = true; | |
// Delete all blank rows and columns with delete options | |
sht1.Cells.DeleteBlankColumns(opts); | |
sht1.Cells.DeleteBlankRows(opts); | |
// Calculate formulas of workbook | |
wb.CalculateFormula(); | |
// Print the formula and value of cell E3 in second sheet after deleting blank columns and rows in Sheet1. | |
Console.WriteLine(""); | |
Console.WriteLine(""); | |
Console.WriteLine("Cell E3 after deleting blank columns and rows in Sheet1."); | |
Console.WriteLine("--------------------------------------------------------"); | |
Console.WriteLine("Cell Formula: " + sht2.Cells["E3"].Formula); | |
Console.WriteLine("Cell Value: " + sht2.Cells["E3"].StringValue); |
Sortie console
Il s’agit de la sortie console de l’exemple de code ci-dessus lorsqueDeleteOptions.UpdateReference la propriété a été définie commevrai.
Cell E3 before deleting blank columns and rows in Sheet1.
\--------------------------------------------------------
Cell Formula: =Sheet1!C1
Cell Value: 4
Cell E3 after deleting blank columns and rows in Sheet1.
\--------------------------------------------------------
Cell Formula: =Sheet1!A1
Cell Value: 4
Il s’agit de la sortie console de l’exemple de code ci-dessus lorsqueDeleteOptions.UpdateReference la propriété a été définie commefaux. Comme vous pouvez le voir, la formule dans la cellule E3 de la deuxième feuille de calcul n’est pas mise à jour et sa valeur de cellule est maintenant 0 au lieu de 4, ce qui n’est pas valide.
Cell E3 before deleting blank columns and rows in Sheet1.
\--------------------------------------------------------
Cell Formula: =Sheet1!C1
Cell Value: 4
Cell E3 after deleting blank columns and rows in Sheet1.
\--------------------------------------------------------
Cell Formula: =Sheet1!C1
Cell Value: 0