If so you can download any of the below versions for testing. The product will function as normal except for an evaluation limitation. At the time of purchase we provide a license file via email that will allow the product to work in its full capacity. If you would also like an evaluation license to test without any restrictions for 30 days, please follow the directions provided here.
If you experience errors, when you try to download a file, make sure your network policies (enforced by your company or ISP) allow downloading ZIP and/or MSI files.
Κλειδί | Περίληψη | Κατηγορία |
---|
CELLSCPP-41 | Υπολογισμός τύπων σε υπολογιστικά φύλλα Excel | Νέο χαρακτηριστικό |
CELLSCPP-42 | Βελτιωμένη απόδοση στην ανάγνωση αρχείων XLSX | Βελτίωση |
Δημόσιο API και Μη συμβατές αλλαγές προς τα πίσω
Ακολουθεί μια λίστα με τυχόν αλλαγές που έγιναν στο κοινό API, όπως προστέθηκαν, μετονομάστηκαν, αφαιρέθηκαν ή καταργήθηκαν μέλη, καθώς και οποιαδήποτε μη συμβατή αλλαγή που έγινε στο Aspose.Cells for C++. Εάν έχετε ανησυχίες σχετικά με οποιαδήποτε αλλαγή που παρατίθεται, θέστε την στο το φόρουμ υποστήριξης Aspose.Cells.
Η πρόσφατη έκδοση 17.02.0 του Aspose.Cells για το CPP API έχει προσθέσει τη μέθοδο IWorkbook::CalculateFormula(). Βοηθά τους προγραμματιστές να υπολογίσουν το αποτέλεσμα των τύπων και να αποθηκεύσουν στο κατάλληλο κελί ενός φύλλου εργασίας. Οι προγραμματιστές μπορούν επίσης να υπολογίσουν τους προσαρμοσμένους τύπους.
Αυτό το παράδειγμα κώδικα δείχνει τον τρόπο υπολογισμού των τύπων σε ένα Excel:
/*create a new workbook*/
intrusive_ptr<IWorkbook> wb = Factory::CreateIWorkbook();
/*get the first worksheet*/
intrusive_ptr<IWorksheetCollection> wsc = wb->GetIWorksheets();
intrusive_ptr<IWorksheet> ws = wsc->GetObjectByIndex(0);
/*get cells*/
intrusive_ptr<ICells> cells = ws->GetICells();
/*set value to cell(0,0) and cell(1,0)*/
cells->GetObjectByIndex(0, 0)->PutValue(3);
cells->GetObjectByIndex(1, 0)->PutValue(2);
/*set formula*/
cells->GetObjectByIndex(0, 1)->SetFormula(new String("=SUM(A1,A2)"));
/*formula calculation*/
wb->CalculateFormula();
/*check result*/
EXPECT_TRUE(5 == cells->GetObjectByIndex(new String("B1"))->GetIntValue());
/*save this workbook to resultFile*/
wb->Save(resultPath->StringAppend(new String("book5.xlsx")));
Οι προγραμματιστές μπορούν να υπολογίζουν τύπους με διάφορους τρόπους. Η μέθοδος IWorkbook::CalculateFormula(bool ignoreError) επιτρέπει στους προγραμματιστές να υπολογίζουν το αποτέλεσμα των τύπων καθώς και να κρύβουν το σφάλμα στον υπολογισμό των τύπων. Μπορεί να προκύψει σφάλμα λόγω της μη υποστηριζόμενης λειτουργίας, των εξωτερικών συνδέσμων κ.λπ.
Αυτό το παράδειγμα κώδικα δείχνει πώς να υπολογίσετε τους τύπους και να αγνοήσετε σφάλματα σε ένα Excel:
/*create a new workbook*/
intrusive_ptr<IWorkbook> wb = Factory::CreateIWorkbook();
/*get the first worksheet*/
intrusive_ptr<IWorksheetCollection> wsc = wb->GetIWorksheets();
intrusive_ptr<IWorksheet> ws = wsc->GetObjectByIndex(0);
/*get cells*/
intrusive_ptr<ICells> cells = ws->GetICells();
/*set value to cell(0,0) and cell(1,0)*/
cells->GetObjectByIndex(0, 0)->PutValue(3);
cells->GetObjectByIndex(1, 0)->PutValue(2);
/*set formula*/
cells->GetObjectByIndex(0, 1)->SetFormula(new String("=SUM(A1,A2)"));
/*formula calculation*/
wb->CalculateFormula(true);
/*check result*/
EXPECT_TRUE(5 == cells->GetObjectByIndex(new String("B1"))->GetIntValue());
/*save this workbook to resultFile*/
wb->Save(resultPath->StringAppend(new String("book5.xlsx")));
Υπολογίζει τύπους στο βιβλίο εργασίας.
Aspose.Cells για CPP API προσφέρει διεπαφή ICustomFunction. Οι προγραμματιστές μπορούν να καλέσουν τη μέθοδο IWorkbook.CalculateFormula(false, ICustomFunction) για να καλέσουν την υλοποίηση της μεθόδου ICustomFunction.CalculateCustomFunction(). Η μέθοδος ICustomFunction.CalculateCustomFunction() επιτρέπει τον χειρισμό των επιστρεφόμενων τιμών προσαρμοσμένων συναρτήσεων. Στο παρακάτω παράδειγμα κώδικα, η υλοποίηση της διεπαφής ICustomFunction αξιολογεί και επιστρέφει τις τιμές δύο προσαρμοσμένων συναρτήσεων, π.χ. MySampleFunc() και YourSampleFunc(). Αυτές οι προσαρμοσμένες συναρτήσεις βρίσκονται μέσα στα κελιά A1 και A2 αντίστοιχα. Εκτυπώνει τις τιμές των A1 και A2 σε μια κονσόλα, οι οποίες είναι στην πραγματικότητα οι τιμές που επιστρέφονται από την ICustomFunction.CalculateCustomFunction().
Αυτό το παράδειγμα κώδικα δείχνει πώς να υπολογίζετε τους τύπους, να αγνοείτε σφάλματα και να χειρίζεστε τις επιστρεφόμενες τιμές προσαρμοσμένων συναρτήσεων σε ένα Excel:
//Implement ICustomFunction interface
class CustomFunction : public ICustomFunction
{
public:
//Evalaute and return the values of your custom functions
intrusive_ptr<Aspose::Cells::System::Object>
CalculateCustomFunction(
intrusive_ptr<Aspose::Cells::System::String> functionName,
intrusive_ptr<Aspose::Cells::System::Collections::ArrayList> paramsList,
intrusive_ptr<Aspose::Cells::System::Collections::ArrayList> contextObjects)
{
if (functionName->Equals(new String("MySampleFunc")))
{
return new String("MY sample function was called successfully.");
}
if (functionName->Equals(new String("YourSampleFunc")))
{
return new String("YOUR sample function was called successfully.");
}
return NULL;
}
};
//Call this function to run the code
void Run()
{
//Create workbook
intrusive_ptr<IWorkbook> wb = Factory::CreateIWorkbook();
//Access first worksheet in the workbook
intrusive_ptr<IWorksheet> ws = wb->GetIWorksheets()->GetObjectByIndex(0);
//Adding custom formulas to Cell A1 and A2
ws->GetICells()->GetObjectByIndex(new String("A1"))->SetFormula(new String("=MySampleFunc()"));
ws->GetICells()->GetObjectByIndex(new String("A2"))->SetFormula(new String("=YourSampleFunc()"));
// Calcualting Formulas
intrusive_ptr<CustomFunction> custFunc = new CustomFunction();
wb->CalculateFormula(true, custFunc);
//Print the value of cell A1 and A2 after the calculation of custom function implemented by us.
intrusive_ptr<String> valA1 = ws->GetICells()->GetObjectByIndex(new String("A1"))->GetStringValue();
intrusive_ptr<String> valA2 = ws->GetICells()->GetObjectByIndex(new String("A2"))->GetStringValue();
//Print the values on console
printf("Value of A1: %s\r\n", valA1->charValue());
printf("Value of A2: %s\r\n", valA2->charValue());
}
IWorksheet::CalculateFormula(intrusive_ptrAspose::Cells::System::StringΗ μέθοδος formula) επιτρέπει στους προγραμματιστές να υπολογίζουν τα αποτελέσματα των τύπων απευθείας χωρίς να τα προσθέτουν σε ένα φύλλο εργασίας. Οι τιμές των κελιών που χρησιμοποιούνται στον τύπο υπάρχουν ήδη σε ένα φύλλο εργασίας και οι προγραμματιστές χρειάζεται μόνο να βρουν το αποτέλεσμα αυτών των τιμών βάσει ορισμένων τύπων Excel Microsoft χωρίς να προσθέσουν τον τύπο σε ένα φύλλο εργασίας.
Αυτό το παράδειγμα κώδικα δείχνει πώς να υπολογίσετε τους τύπους απευθείας χωρίς να τους προσθέσετε σε ένα φύλλο εργασίας σε ένα Excel:
//Create workbook
intrusive_ptr<IWorkbook> wb = Factory::CreateIWorkbook();
//Access first worksheet in the workbook
intrusive_ptr<IWorksheet> ws = wb->GetIWorksheets()->GetObjectByIndex(0);
//Put 20 in cell A1
intrusive_ptr<ICell> cellA1 = ws->GetICells()->GetObjectByIndex(new String("A1"));
cellA1->PutValue(20);
//Put 30 in cell A2
intrusive_ptr<ICell> cellA2 = ws->GetICells()->GetObjectByIndex(new String("A2"));
cellA2->PutValue(30);
//Calculate the Sum of A1 and A2
intrusive_ptr<Aspose::Cells::System::Object> results = ws->CalculateFormula(new String("=Sum(A1:A2)"));
//Print the output
printf("Value of A1: %s\r\n", cellA1->GetStringValue()->charValue());
printf("Value of A2: %s\r\n", cellA2->GetStringValue()->charValue());
printf("Result of Sum(A1:A2): %s\r\n", results->ToString()->charValue());
Υπολογίζει έναν τύπο με πιο ευέλικτο τρόπο.
Υπολογίζει όλους τους τύπους στο φύλλο εργασίας.
Υπολογίζει όλους τους τύπους στο φύλλο εργασίας.
Υπολογίζει τον τύπο του κελιού στο φύλλο εργασίας.
Προσθέτει τη μέθοδο ICEll::Calculate(bool ignoreError , intrusive_ptrAspose::Cells::ICustomFunction customFunction)
Υπολογίζει τον τύπο του κελιού στο φύλλο εργασίας.
Παραδείγματα χρήσης
Ελέγξτε τη λίστα των θεμάτων βοήθειας που έχουν προστεθεί στα έγγραφα του Wiki Aspose.Cells:
- Προσθήκη τύπων και υπολογισμός αποτελεσμάτων
- Άμεσος Υπολογισμός Τύπου
- Υπολογισμός τύπων μόνο μία φορά
- Χρήση της δυνατότητας ICustomFunction