Utilizza la macro ONLYOFFICE per analizzare i dati del foglio di calcolo
Sebbene ChatGPT 4 ora offra funzionalità migliorate, alcuni utenti preferiscono ancora ChatGPT 3.5 a causa del costo del token inferiore. Tuttavia, ChatGPT 3.5 non dispone della funzionalità di caricamento dei file, impedendo agli utenti di analizzare le schede tecniche. In questo post del blog, dimostreremo come creare una macro di ONLYOFFICE che superi questa limitazione, consentendoti di analizzare i fogli di calcolo utilizzando l’API OpenAI.
A proposito delle macro
Per aggirare questa limitazione, la nostra macro segue questi passi:
- Raccoglie i valori delle celle selezionate dal foglio di calcolo.
- Compila questi valori in un array.
- Converte questo array in una stringa.
- Lo invia utilizzando una richiesta di recupero a un server proxy Node.js.
- Il server recupera l’array dal corpo della richiesta.
- Utilizza quindi la libreriaOpenAI per inviare una richiesta API a OpenAI.
- Una volta ricevuta la risposta, il server la rinvia alla macro all’interno di un oggetto risposta.
Per istruzioni dettagliate sulla configurazione del server proxy, incluso il codice completo, consulta il nostro post del blog che dimostra come creare una macro per popolare fogli di calcolo con dati da OpenAI.
Nota! Tieni presente che questa macro è più adatta per tabelle di medie dimensioni, in genere circa 50 righe, a causa della limitazione del modello ChatGPT 3.5 di 4096 token.
Costruzione della macro
Per prima cosa recuperiamo l’intervallo attualmente selezionato da un foglio di calcolo:
// Get the selected range using ONLYOFFICE API
var selection = Api.GetSelection();
Quindi creiamo un array vuoto chiamato rowData per memorizzare i dati che verranno raccolti dalle celle selezionate:
// Initialize an array to store all data
var rowData = [];
Iteriamo su ogni cella nell’intervallo selezionato utilizzando un ciclo ForEach. Per ogni cella, recuperiamo il suo valore utilizzando il metodo GetValue, quindi aggiungiamo quel valore all’array rowData:
// Use ForEach to iterate through the selected range
selection.ForEach(function (cell) {
// Retrieve the cell value using ONLYOFFICE API
var cellValue = cell.GetValue();
// Add cell value to the rowData array
rowData.push(cellValue);
});
Successivamente convertiamo i valori raccolti nell’array rowData in un’unica stringa in cui i valori sono separati da virgole:
// Merge the values in rowData and separate them by commas
var rowDataAsString = rowData.join(',');
Creiamo un oggetto chiamato requestData:
// Prepare the data to send in the POST request
var requestData = {
prompt: `analyze this data ${rowDataAsString}`, // Use the merged string here
apiKey: '<APIkey>', // Replace with your API key
};
- Il campo prompt include la stringa unita di valori di cella per l’analisi.
- Il campo apiKey contiene la chiave API utilizzata dal tuo server Node.js per autenticare le richieste di recupero in entrata.
Quindi utilizziamo la funzione fetch per inviare una richiesta POST all’URL specificato:
fetch('http://localhost:3000/completion', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(requestData),
})
Gestiamo la risposta API convertendola prima in formato JSON, registrando i dati sulla console e implementando anche la gestione degli errori nel caso in cui si verifichino problemi con la richiesta POST:
.then(function (response) {
return response.json();
})
.then(function (data) {
// Log the API response
console.log(data);
})
.catch(function (error) {
// Handle any errors that occur during the fetch
console.error('Error:', error);
});
Il codice intero della macro è il seguente:
(function()
{
// Get the selected range using ONLYOFFICE API
var selection = Api.GetSelection();
// Initialize an array to store all data
var rowData = [];
// Use ForEach to iterate through the selected range
selection.ForEach(function (cell) {
// Retrieve the cell value using ONLYOFFICE API
var cellValue = cell.GetValue();
// Add cell value to the rowData array
rowData.push(cellValue);
});
// Merge the values in rowData and separate them by commas
var rowDataAsString = rowData.join(',');
// Prepare the data to send in the POST request
var requestData = {
prompt: `analyze this data ${rowDataAsString}`, // Use the merged string here
apiKey: '<APIkey>', // Replace with your API key
};
// Send the data to the API (replace the URL with your OpenAI API endpoint)
fetch('http://localhost:3000/completion', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(requestData),
})
.then(function (response) {
return response.json();
})
.then(function (data) {
// Log the API response
console.log(data);
})
.catch(function (error) {
// Handle any errors that occur during the fetch
console.error('Error:', error);
});
})();
Ora eseguiamo la nostra macro e vediamo come funziona!
Esempio di scheda dati finanziaria:
Esempio di scheda dati del dipendente:
Ci auguriamo che gli approfondimenti condivisi in questo post del blog possano contribuire a una maggiore efficienza del lavoro. Ti invitiamo a esplorare e implementare i nostri vari metodi API nel tuo lavoro quotidiano.
Se hai domande o idee creative, non esitare a condividerle con noi. Siamo aperti alla collaborazione. In bocca al lupo!
Crea il tuo account ONLYOFFICE gratuito
Visualizza, modifica e collabora su documenti, fogli, diapositive, moduli e file PDF online.