Çalışma sayfasında boş sütunları ve satırları silerken diğer çalışma sayfalarındaki referansları güncelle
Çalışma sayfasında boş sütunları ve satırları silerken diğer çalışma sayfalarındaki referansları güncelle
Lütfen aşağıdaki örnek kodu ve konsol çıktısını inceleyin. İkinci çalışsayfadaki E3 hücresinde, birinci çalışsayfadaki C3 hücresine atıfta bulunan =Sheet1!C3 formülü bulunmaktadır. Eğer DeleteOptions.UpdateReference özelliğini trueolarak ayarlarsanız, bu formül güncellenecek ve ilk çalışsayfadaki boş sütunları ve satırları sildiğinizde =Sheet1!A1 olacaktır. Ancak DeleteOptions.UpdateReference özelliğini false olarak ayarlarsanız, ikinci çalışsayfadaki E3 hücresindeki formül =Sheet1!C3 olarak kalacak ve geçersiz hale gelecektir.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(Updatereferencesinotherworksheetswhiledeletingblankcolumnsandrowsinworksheet.class); | |
//Create workbook | |
Workbook wb = new Workbook(); | |
//Add second sheet with name Sheet2 | |
wb.getWorksheets().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.getWorksheets().get(0); | |
sht1.getCells().get("C1").putValue(4); | |
sht1.getCells().get("K30").putValue(4); | |
//Access second sheet and add formula in cell E3 which refers to cell C1 in first sheet | |
Worksheet sht2 = wb.getWorksheets().get(1); | |
sht2.getCells().get("E3").setFormula("'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. | |
System.out.println("Cell E3 before deleting blank columns and rows in Sheet1."); | |
System.out.println("--------------------------------------------------------"); | |
System.out.println("Cell Formula: " + sht2.getCells().get("E3").getFormula()); | |
System.out.println("Cell Value: " + sht2.getCells().get("E3").getStringValue()); | |
//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.setUpdateReference(true); | |
//Delete all blank rows and columns with delete options | |
sht1.getCells().deleteBlankColumns(opts); | |
sht1.getCells().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. | |
System.out.println(""); | |
System.out.println(""); | |
System.out.println("Cell E3 after deleting blank columns and rows in Sheet1."); | |
System.out.println("--------------------------------------------------------"); | |
System.out.println("Cell Formula: " + sht2.getCells().get("E3").getFormula()); | |
System.out.println("Cell Value: " + sht2.getCells().get("E3").getStringValue()); |
Konsol Çıktısı
Yukarıdaki örnek kodun konsol çıktısı, DeleteOptions.UpdateReference özelliği true olarak ayarlandığında.
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
Yukarıdaki örnek kodun konsol çıktısı, DeleteOptions.UpdateReference özelliği false olarak ayarlandığında. Görebileceğiniz gibi, ikinci çalışsayfadaki E3 hücresindeki formül güncellenmedi ve hücre değeri artık geçersiz olan 0’dır, 4 değil.
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