Search Data using Original Values

Search Data using Original Values

The following sample code illustrates the above point. It finds cell D4 which cannot be found using Microsoft Excel find options but Aspose.Cells can find it using LookInType.ORIGINAL_VALUES. Please read the comments inside the code for more information.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
String dataDir = Utils.getDataDir(SearchDataUsingOriginalValues.class);
// Create workbook object
Workbook workbook = new Workbook();
// Access first worksheet
Worksheet worksheet = workbook.getWorksheets().get(0);
// Add 10 in cell A1 and A2
worksheet.getCells().get("A1").putValue(10);
worksheet.getCells().get("A2").putValue(10);
// Add Sum formula in cell D4 but customize it as ---
Cell cell = worksheet.getCells().get("D4");
Style style = cell.getStyle();
style.setCustom("---");
cell.setStyle(style);
// The result of formula will be 20, but 20 will not be visible because the cell is formated as ---
cell.setFormula("=Sum(A1:A2)");
// Calculate the workbook
workbook.calculateFormula();
// Create find options, we will search 20 using. original values otherwise 20 will never be found,because it is formatted
// as
FindOptions options = new FindOptions();
options.setLookInType(LookInType.ORIGINAL_VALUES);
options.setLookAtType(LookAtType.ENTIRE_CONTENT);
Cell foundCell = null;
Object obj = 20;
// Find 20 which is Sum(A1:A2) and formatted as ---
foundCell = worksheet.getCells().find(obj, foundCell, options);
// Print the found cell
System.out.println(foundCell);
// Save the workbook
workbook.save(dataDir + "output.xlsx");

Console Output

Here is the console output of the above sample code.

 Aspose.Cells.Cell [ D4; ValueType : IsNumeric; Value : ---; Formula:=SUM(A1:A2)]