ワークシートの空白の列と行を削除しながら、他のワークシートの参照を更新する
Contents
[
Hide
]
ワークシートの空白の列と行を削除すると、他のワークシートでの参照が無効になります。この動作を回避し、他のワークシート内の現在のワークシートの参照も更新したい場合は、DeleteOptions.UpdateReferenceプロパティに設定し、真実.
ワークシートの空白の列と行を削除しながら、他のワークシートの参照を更新する
次のサンプル コードとそのコンソール出力を参照してください。 2 番目のワークシートのセル E3 には、最初のワークシートのセル C3 を参照する数式 =Sheet1!C3 があります。設定する場合DeleteOptions.UpdateReferenceプロパティとして真実、この数式は更新され、最初のワークシートの空白の列と行を削除すると =Sheet1!A1 になります。ただし、設定する場合DeleteOptions.UpdateReferenceプロパティとして間違い、2 番目のワークシートのセル E3 の数式は =Sheet1!C3 のままで無効になります。
プログラミングサンプル
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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); |
コンソール出力
これは、上記のサンプル コードのコンソール出力です。DeleteOptions.UpdateReferenceプロパティは次のように設定されています真実.
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
これは、上記のサンプル コードのコンソール出力です。DeleteOptions.UpdateReferenceプロパティは次のように設定されています間違い.ご覧のとおり、2 番目のワークシートのセル E3 の数式は更新されておらず、そのセル値は無効な 4 ではなく 0 になっています。
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