Πώς να χειριστείτε ασύγχρονες κλήσεις API μέσα σε προσαρμοσμένες συναρτήσεις του ONLYOFFICE
Οι προσαρμοσμένες συναρτήσεις είναι ένας ισχυρός και ευέλικτος τρόπος για να επεκτείνετε τη λειτουργικότητα του Επεξεργαστή Υπολογιστικών Φύλλων ONLYOFFICE. Ως μέρος της συνεχούς προσπάθειας μας για βελτίωση της πλατφόρμας, η πρόσφατη έκδοση του ONLYOFFICE Docs 9.0 προσθέτει υποστήριξη για ασύγχρονες κλήσεις API μέσα σε προσαρμοσμένες συναρτήσεις. Σε αυτήν την ανάρτηση ιστολογίου, θα σας δείξουμε πώς να τις ενσωματώσετε στις δικές σας λύσεις.
Σχετικά με τις προσαρμοσμένες συναρτήσεις του ONLYOFFICE
Οι προσαρμοσμένες συναρτήσεις είναι μια πολύπλευρη και ισχυρή προσθήκη στα μακροεντολές του Επεξεργαστή Υπολογιστικών Φύλλων ONLYOFFICE. Σας επιτρέπουν να δημιουργήσετε τις δικές σας συναρτήσεις που μπορούν να εξαχθούν και να χρησιμοποιηθούν απευθείας μέσα στο υπολογιστικό φύλλο.
(function () {
/**
* Αυτή είναι μια προσαρμοσμένη συνάρτηση που μπορεί να χρησιμοποιηθεί στον επεξεργαστή.
* @customfunction
* @param {number} value - περιγραφή της παραμέτρου.
* @returns {number} Περιγραφή των επιστρεφόμενων δεδομένων.
*/
function customFunctionName(value) {
// Προσθέστε τη λογική του προσαρμοσμένου υπολογισμού εδώ
return // το αποτέλεσμα του υπολογισμού σας;
}
// Εγγραφή της προσαρμοσμένης συνάρτησης στον επεξεργαστή
Api.AddCustomFunction(customFunctionName);
})();
Πού να το βρείτε: Προβολή > Μακροεντολές > Προσαρμοσμένες συναρτήσεις
Τι άλλαξε
Με την κυκλοφορία του ONLYOFFICE Docs 9.0, έχουμε εισαγάγει τη δυνατότητα κλήσης ασύγχρονων συναρτήσεων μέσα στα προσαρμοσμένα σενάρια σας.
Τώρα, μπορείτε να:
- Εκτελέσετε ασύγχρονες αιτήσεις web σε οποιεσδήποτε υπηρεσίες.
- Κάνετε ασύγχρονες αιτήσεις σε παρόχους τεχνητής νοημοσύνης.
- Χρησιμοποιήσετε ασύγχρονο κώδικα JS σε ασύγχρονες συναρτήσεις.
- Επεξεργαστείτε ασύγχρονες αποκρίσεις.
- Εξάγετε αποτελέσματα απευθείας στο υπολογιστικό σας φύλλο.
(function () {
// Κάντε μια ασύγχρονη αίτηση
let asyncFunc = async function (value) {
let request = await fetch("https://yourURL");
const jsonData = await request.json();
if (value === undefined) {
value = 2;
}
return jsonData;
};
/**
* Αυτή είναι μια προσαρμοσμένη συνάρτηση που μπορεί να χρησιμοποιηθεί στον επεξεργαστή.
* @customfunction
* @param {number} value - περιγραφή της παραμέτρου.
* @returns {number} Περιγραφή των επιστρεφόμενων δεδομένων.
*/
async function customFunctionName(value) {
// Καλέστε την ασύγχρονη συνάρτηση και επιστρέψτε το αποτέλεσμά της
return await asyncFunc(value);
}
// Εγγραφή της προσαρμοσμένης συνάρτησης στον επεξεργαστή
Api.AddCustomFunction(customFunctionName);
})();
Χρήση ασύγχρονων κλήσεων API μέσα σε προσαρμοσμένες συναρτήσεις
Για αυτό το παράδειγμα, θα χρησιμοποιήσουμε το Sales Tax API από την API Ninjas, το οποίο επιστρέφει το ποσοστό φόρου πωλήσεων της πολιτείας για οποιοδήποτε ταχυδρομικό κώδικα των ΗΠΑ παρέχεται στην αίτηση.
Σημείωση! Για να χρησιμοποιήσετε αυτήν την προσαρμοσμένη συνάρτηση του ONLYOFFICE, θα χρειαστεί να παρέχετε το δικό σας κλειδί API, το οποίο μπορείτε να αποκτήσετε από τον ιστότοπο της API Ninjas.
Δημιουργία του μακροεντολής
Πρώτα ορίζουμε μια ασύγχρονη συνάρτηση getSalesTax:
let getSalesTax = async function (value) {
}
Παίρνει μια παράμετρο value, η οποία αναμένεται να είναι ένας ταχυδρομικός κώδικας των ΗΠΑ.
Εάν δεν παρέχεται ταχυδρομικός κώδικας, η συνάρτηση χρησιμοποιεί ως προεπιλογή το 90210:
let getSalesTax = async function (value) {
}
if (undefined === value) {
value = 90210;
}
Επειδή μερικοί ταχυδρομικοί κώδικες των ΗΠΑ ξεκινούν με 0, εξασφαλίζουμε ότι ο ταχυδρομικός κώδικας είναι μια συμβολοσειρά 5 ψηφίων:
// Μετατροπή σε συμβολοσειρά και προσθήκη μηδενικών εάν χρειάζεται
let zipStr = value.toString();
while (zipStr.length < 5) {
zipStr = '0' + zipStr;
}
Για παράδειγμα, το 31 γίνεται 00031.
Στη συνέχεια, δημιουργούμε τη διεύθυνση URL για το API προσαρτώντας τον ταχυδρομικό κώδικα ως παράμετρο ερωτήματος:
Και στέλνουμε μια αίτηση GET στο API:
let request = await fetch(url, {
method: 'GET',
headers: {
'X-Api-Key': 'yourAPIkey',
'Content-Type': 'application/json'
}
});
Μετά από αυτό, αναλύουμε την απάντηση JSON σε ένα χρησιμοποιήσιμο αντικείμενο JavaScript:
let jsonData = await request.json();
Εξάγουμε το πεδίο state_rate από το πρώτο στοιχείο του επιστρεφόμενου πίνακα. Είναι το ποσοστό φόρου πωλήσεων της πολιτείας για τον παρεχόμενο ταχυδρομικό κώδικα. Και επιστρέφουμε αυτόν τον αριθμό:
const taxRate = jsonData[0].state_rate;
return taxRate;
Στη συνέχεια, ορίζουμε τις παραμέτρους της προσαρμοσμένης συνάρτησης:
/**
* Συνάρτηση που επιστρέφει τον φόρο πωλήσεων της πολιτείας.
* @customfunction
* @param {number} value - ταχυδρομικός κώδικας.
* @returns {number} Επιστρέφει δεδομένα φόρου πωλήσεων της πολιτείας.
*/
Παίρνουμε την απάντηση από την ασύγχρονη συνάρτηση:
async function salestax(value) {
return await getSalesTax(value);
}
Και εγγράφουμε την προσαρμοσμένη συνάρτηση:
// Προσθήκη της προσαρμοσμένης συνάρτησης
Api.AddCustomFunction(salestax);
})();
Τώρα μπορούμε να καλέσουμε τη συνάρτηση SALESTAX() απευθείας μέσα σε ένα υπολογιστικό φύλλο.
Ολόκληρος ο κώδικας είναι ο ακόλουθος:
(function () {
// Συνάρτηση που επιστρέφει δεδομένα φόρου πωλήσεων από το api-ninjas.com
let getSalesTax = async function (value) {
if (undefined === value) {
value = 90210;
}
// Μετατροπή σε συμβολοσειρά και προσθήκη μηδενικών εάν χρειάζεται
let zipStr = value.toString();
while (zipStr.length < 5) {
zipStr = '0' + zipStr;
}
const url = 'https://api.api-ninjas.com/v1/salestax?zip_code=' + zipStr;
let request = await fetch(url, {
method: 'GET',
headers: {
'X-Api-Key': 'yourAPIkey',
'Content-Type': 'application/json'
}
});
let jsonData = await request.json();
const taxRate = jsonData[0].state_rate;
return taxRate;
};
/**
* Συνάρτηση που επιστρέφει τον φόρο πωλήσεων της πολιτείας.
* @customfunction
* @param {number} value - ταχυδρομικός κώδικας.
* @returns {number} Επιστρέφει δεδομένα φόρου πωλήσεων της πολιτείας.
*/
async function salestax(value) {
return await getSalesTax(value);
}
// Προσθήκη της προσαρμοσμένης συνάρτησης
Api.AddCustomFunction(salestax);
})();
Τώρα, ας αποθηκεύσουμε αυτήν την προσαρμοσμένη συνάρτηση και ας δούμε πώς λειτουργεί!
Ελπίζουμε ότι αυτό το νέο χαρακτηριστικό σας δίνει τη δυνατότητα να δημιουργήσετε ακόμα πιο ισχυρές και πολύπλευρες λύσεις για τις εργασίες σας. Στο ONLYOFFICE, είμαστε αφοσιωμένοι στο να σχεδιάζουμε και να παρέχουμε τεχνολογίες που μπορούν να προσαρμοστούν στις συγκεκριμένες σας ανάγκες.
Σας ενθαρρύνουμε να πειραματιστείτε με ασύγχρονες προσαρμοσμένες συναρτήσεις και να εκμεταλλευτείτε πλήρως αυτήν την επεκτεταμένη λειτουργικότητα. Εάν έχετε κάποιες ενδιαφέρουσες ιδέες ή προτάσεις, θα χαρούμε να ακούσουμε από εσάς! Είμαστε πάντα ανοιχτοί σε σχόλια και συνεργασία. Καλή τύχη στις εξερευνητικές σας προσπάθειες!
Δημιουργήστε τον δωρεάν λογαριασμό ONLYOFFICE σας
Online προβολή, επεξεργασία και συνεργασία σε έγγραφα, υπολογιστικά φύλλα, παρουσιάσεις, φόρμες και αρχεία PDF.