元の値を使用してデータを検索する
Contents
[
Hide
]
何らかの方法でフォーマットされているために、データの値が隠されている場合があります。たとえば、セル D4 に数式 =Sum(A1:A2) があり、その値が 20 であるが — として書式設定されている場合、値 20 は非表示になり、Microsoft Excel 検索オプションを使用して見つけることができません。ただし、Aspose.Cells を使用して見つけることができます。LookInType.ORIGINAL_VALUES
元の値を使用してデータを検索する
次のサンプル コードは、上記の点を示しています。 Microsoft Excel検索オプションを使用しても見つからないセルD4が見つかりますが、Aspose.Cellsを使用して見つけることができますLookInType.ORIGINAL_VALUES.詳細については、コード内のコメントをお読みください。
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-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"); |
コンソール出力
上記のサンプル コードのコンソール出力を次に示します。
Aspose.Cells.Cell [ D4; ValueType : IsNumeric; Value : ---; Formula:=SUM(A1:A2)]