تحديث المراجع في ورقات العمل الأخرى أثناء حذف الأعمدة والصفوف الفارغة في ورقة العمل

تحديث المراجع في ورقات العمل الأخرى أثناء حذف الأعمدة والصفوف الفارغة في ورقة العمل

يرجى رؤية رمز العينة التالي وناتجه في وحدة التحكم. الخلية E3 في الورقة المرجعية الثانية تحتوي على صيغة =Sheet1!C3 التي تشير إلى الخلية C3 في الورقة المرجعية الأولى. إذا قمت بتعيين DeleteOptions.UpdateReference بصفته صحيح، سيتم تحديث هذه الصيغة وتصبح =Sheet1!A1 عند حذف الأعمدة والصفوف الفارغة في الورقة المرجعية الأولى. ومع ذلك، إذا قمت بتعيين DeleteOptions.UpdateReference بصفته خاطئ، ستظل الصيغة في الخلية E3 للورقة المرجعية الثانية =Sheet1!C3 وتصبح غير صالحة.

// 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());

مخرجات الوحدة

هذا هو ناتج وحدة التحكم لرمز العينة أعلاه عندما يتم تعيين خاصية 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 بصفته خاطئ. كما ترون، لم يتم تحديث الصيغة في الخلية E3 للورقة المرجعية الثانية وقيمة الخلية الآن 0 بدلاً من 4 وهو غير صالح.

 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