ワークシート内の空白の列と行を削除する際に、他のワークシートの参照を更新する

ワークシート内の空白の列と行を削除する際に、他のワークシートの参照を更新する

次に示すサンプルコードとそのコンソール出力を参照してください。 2番目のワークシートのセルE3には、最初のワークシートのセルC3を参照する=Sheet1!C3という式があります。 DeleteOptions.update_referenceプロパティをtrueに設定すると、この式が更新され=Sheet1!A1になります。ただし、DeleteOptions.update_referenceプロパティをfalseに設定すると、2番目のワークシートのセルE3の式は=Sheet1!C3のままで無効になります。

プログラミングサンプル

from aspose.cells import DeleteOptions, Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# Create workbook
wb = 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
sht1 = wb.worksheets[0]
sht1.cells.get("C1").put_value(4)
sht1.cells.get("K30").put_value(4)
# Access second sheet and add formula in cell E3 which refers to cell C1 in first sheet
sht2 = wb.worksheets[1]
sht2.cells.get("E3").formula = "'Sheet1'!C1"
# Calculate formulas of workbook
wb.calculate_formula()
# Print the formula and value of cell E3 in second sheet before deleting blank columns and rows in Sheet1.
print("Cell E3 before deleting blank columns and rows in Sheet1.")
print("--------------------------------------------------------")
print("Cell Formula: " + sht2.cells.get("E3").formula)
print("Cell Value: " + sht2.cells.get("E3").string_value)
# If you comment DeleteOptions.UpdateReference property below, then the formula in cell E3 in second sheet will not be updated
opts = DeleteOptions()
opts.update_reference = True
# Delete all blank rows and columns with delete options
sht1.cells.delete_blank_columns(opts)
sht1.cells.delete_blank_rows(opts)
# Calculate formulas of workbook
wb.calculate_formula()
# Print the formula and value of cell E3 in second sheet after deleting blank columns and rows in Sheet1.
print("")
print("")
print("Cell E3 after deleting blank columns and rows in Sheet1.")
print("--------------------------------------------------------")
print("Cell Formula: " + sht2.cells.get("E3").formula)
print("Cell Value: " + sht2.cells.get("E3").string_value)

コンソール出力

上記のサンプルコードのDeleteOptions.update_referenceプロパティがtrueに設定された場合のコンソール出力です。

 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.update_referenceプロパティがfalseに設定された場合のコンソール出力です。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