オリジナル値を使ったデータ検索 with C++
Contents
[
Hide
]
データの値がある形式でフォーマットされているため、値が隠されていることがあります。たとえば、セルD4に式=Sum(A1:A2)があり、その値が20であるが、—としてフォーマットされている場合、値20は非表示であり、Microsoft Excelの検索オプションでは見つけることはできません。ただし、Aspose.Cellsを使用してLookInType.OriginalValuesを使用してそれを見つけることができます。
以下のサンプルコードは上記の点を説明しています。Microsoft Excelの検索オプションでは見つけることができないセルD4を見つけますが、Aspose.Cellsを使用してLookInType.OriginalValuesを使用してそれを見つけることができます。詳細については、コード内のコメントをお読みください。
オリジナル値を使用したデータ検索用C++コード
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Create workbook object
Workbook workbook;
// Access first worksheet
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Add 10 in cell A1 and A2
worksheet.GetCells().Get(u"A1").PutValue(10);
worksheet.GetCells().Get(u"A2").PutValue(10);
// Add Sum formula in cell D4 but customize it as ---
Cell cell = worksheet.GetCells().Get(u"D4");
Style style = cell.GetStyle();
style.SetCustom(u"---", true);
cell.SetStyle(style);
// The result of formula will be 20 but 20 will not be visible because the cell is formatted as ---
cell.SetFormula(u"=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;
options.SetLookInType(LookInType::OriginalValues);
options.SetLookAtType(LookAtType::EntireContent);
Cell foundCell;
int32_t obj = 20;
// Find 20 which is Sum(A1:A2) and formatted as ---
foundCell = worksheet.GetCells().Find(obj, foundCell, options);
// Print the found cell
std::cout << foundCell.ToString().ToUtf8() << std::endl;
// Save the workbook
workbook.Save(outDir + u"output_out.xlsx");
Aspose::Cells::Cleanup();
}
サンプルコードによって生成されたコンソール出力
上記のサンプルコードのコンソール出力は次の通りです。
Aspose.Cells.Cell [ D4; ValueType : IsNumeric; Value : ---; Formula:=SUM(A1:A2)]