Ricerca dati usando valori originali con C++
Contents
[
Hide
]
A volte il valore dei dati è nascosto perché è formattato in qualche modo. Ad esempio, supponiamo che la cella D4 abbia la formula =Somma(A1:A2) e il suo valore sia 20 ma è formattato come —, quindi il valore 20 è nascosto e non può essere trovato utilizzando le opzioni di ricerca di Microsoft Excel. Tuttavia, puoi trovarlo utilizzando Aspose.Cells utilizzando LookInType.OriginalValues
Il seguente codice di esempio illustra il punto sopra. Trova la cella D4 che non può essere trovata utilizzando le opzioni di ricerca di Microsoft Excel ma Aspose.Cells può trovarla utilizzando LookInType.OriginalValues. Si prega di leggere i commenti all’interno del codice per ulteriori informazioni.
Codice C++ per cercare dati usando valori originali
#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();
}
Output della console generato dall’esempio di codice
Ecco l’output della console del codice di esempio sopra.
Aspose.Cells.Cell [ D4; ValueType : IsNumeric; Value : ---; Formula:=SUM(A1:A2)]