Aktualisieren Sie Verweise in anderen Arbeitsblättern, während Sie leere Spalten und Zeilen in einem Arbeitsblatt löschen
Aktualisieren Sie Verweise in anderen Arbeitsblättern, während Sie leere Spalten und Zeilen in einem Arbeitsblatt löschen
Bitte beachten Sie den folgenden Beispielcode und seine Konsolenausgabe. Die Zelle E3 in der zweiten Tabelle hat eine Formel =Blatt1!C3, die sich auf die Zelle C3 in der ersten Tabelle bezieht. Wenn Sie DeleteOptions.UpdateReference auf true setzen, wird diese Formel aktualisiert und wird zu =Blatt1!A1, wenn Sie leere Spalten und Zeilen in der ersten Tabelle löschen. Wenn Sie jedoch DeleteOptions.UpdateReference auf false setzen, bleibt die Formel in Zelle E3 der zweiten Tabelle =Blatt1!C3 und wird ungültig.
Programmierbeispiel
// 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); |
Konsolenausgabe
Dies ist die Konsolenausgabe des obigen Beispielcodes, wenn DeleteOptions.UpdateReference auf true gesetzt wurde.
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
Dies ist die Konsolenausgabe des obigen Beispielcodes, wenn DeleteOptions.UpdateReference auf false gesetzt wurde. Wie Sie sehen können, wurde die Formel in Zelle E3 der zweiten Tabelle nicht aktualisiert und ihr Zellenwert beträgt jetzt 0 statt 4, was ungültig ist.
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