Fogli di calcolo
Converti Google Sheets, XLSX o CSV in una cartella XLSX con attribuzione.
Converti i link in un intero foglio Google o in una cartella caricata usando il token bearer del tuo account. Il risultato è sempre .xlsx, anche con un input CSV. I link vengono sostituiti sul posto, con l'attribuzione al tuo account e i valori facoltativi campaign e label descritti in Link.
Input Google Sheets
Invia un URL di Google Sheets che NinjaBuy possa leggere. La conversione legge tutte le schede, non solo l'anteprima visualizzata, e fissa un'istantanea per questo lavoro.
curl -sS -D sheet-headers.txt https://www.ninjabuy.com/api/v1/sheets \
-H "Authorization: Bearer $NINJABUY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
--data '{"url":"https://docs.google.com/spreadsheets/d/SHEET_ID/edit","campaign":"spring-haul","label":"finds"}'Input XLSX o CSV
Per prima cosa prenota un caricamento. filename deve terminare con .xlsx o .csv e contenere da 1 a 255 caratteri dopo la rimozione degli spazi alle estremità. bytes è la dimensione esatta del file in byte, da 1 a 20.971.520.
curl -sS https://www.ninjabuy.com/api/v1/uploads \
-H "Authorization: Bearer $NINJABUY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
--data '{"filename":"finds.xlsx","bytes":12345}'La risposta 201 contiene upload_id, un'url firmata per PUT, expires_at (millisecondi dall'inizio dell'epoca Unix), max_bytes e request_id. La prenotazione scade dopo 15 minuti. Invia il file grezzo con PUT all'URL ricevuto, poi invia il suo identificativo di caricamento:
curl --fail-with-body -X PUT "$UPLOAD_URL" \
--data-binary @finds.xlsx
curl -sS -D sheet-headers.txt https://www.ninjabuy.com/api/v1/sheets \
-H "Authorization: Bearer $NINJABUY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
--data '{"upload_id":"UPLOAD_ID","campaign":"spring-haul","label":"finds"}'Il PUT diretto usa il contratto di risposta del servizio di archiviazione. NinjaBuy convalida i byte caricati quando invii la conversione. Gli identificativi di caricamento sconosciuti o di altri account restituiscono 404. L'oggetto archiviato deve corrispondere al numero di byte dichiarato; un oggetto più grande della dimensione dichiarata o del massimo restituisce 413 upload-too-large, mentre un oggetto più piccolo (troncato) restituisce 422 invalid-workbook con la spiegazione della mancata corrispondenza del numero di byte. Questi controlli avvengono prima del download e si applicano anche se i byte cambiano dopo il controllo dei metadati. I file grezzi dei caricamenti rifiutati vengono eliminati, mentre quelli dei caricamenti accettati vengono eliminati una volta registrata la relativa istantanea convalidata.
Invia esattamente una sorgente: url o upload_id. Entrambe accettano campaign e label facoltativi; non serve un campo async. Entrambe le route POST accettano Idempotency-Key e ognuna consuma uno spazio della finestra di creazione condivisa di 30 chiamate al minuto. Le conversioni dei link derivate non consumano spazi aggiuntivi.
Lavoro e download
L'invio di un foglio restituisce 202 con Location: /api/v1/jobs/JOB_ID, Retry-After: 5 e questo corpo:
{
"job": {
"id": "JOB_ID",
"kind": "sheet_conversion",
"status": "queued",
"poll_after_seconds": 5
},
"request_id": "REQUEST_ID"
}Interroga Operazioni con il token dello stesso account fino a done o failed, rispettando poll_after_seconds. Un job.result completato contiene kind: "sheet_conversion", counts e un download_url firmato valido per 15 minuti. Interroga di nuovo per ottenere una nuova firma di download. Un lavoro fallito contiene error e non offre download parziali.
Per un Google Sheet, job.result può contenere anche copy_url, un link di sola visualizzazione a una copia esatta in Google Sheets con i tuoi link al loro posto; chiunque abbia il link può tenerne una propria copia con File → Crea una copia. copy_notes elenca ciò che chi legge quella copia deve sapere, ad esempio che le immagini create con =IMAGE() richiedono un clic su Consenti accesso nella propria copia. download_url restituisce ancora il file XLSX. copy_counts riporta gli stessi conteggi per la copia; se il file XLSX non si può creare, il risultato mantiene copy_url, non ha download_url e copy_notes ne spiega il motivo. download_notes elenca, riga per riga, ciò che il file XLSX non può contenere del foglio, come grafici o un secondo link in una cella.
Le istantanee e i file dei risultati vengono conservati per sette giorni dopo il completamento o il fallimento del lavoro. Dopo la pulizia, il lavoro resta consultabile con il suo stato e i conteggi, e job.result.download_url viene omesso. Le istantanee condivise vengono conservate finché un altro lavoro ne ha ancora bisogno. I file grezzi dei caricamenti abbandonati vengono eliminati un'ora dopo la scadenza della prenotazione di caricamento; un caricamento convalidato che non avvia mai un lavoro perde la propria istantanea sette giorni dopo la scadenza della prenotazione. La pulizia viene eseguita ogni ora.
| Conteggio | Significato |
|---|---|
links_found | Occorrenze di link trovate, incluse le destinazioni ripetute. |
converted | Occorrenze sostituite con link con attribuzione. |
left_by_host | Conteggi raggruppati per host dei link lasciati intenzionalmente invariati. |
unresolved | Occorrenze che non è stato possibile convertire e che restano invariate. |
unresolved_examples | Esempi di URL non risolti. |
coverage_gap | Risposte di conversione mancanti; sempre 0 in un file prodotto. |
La copertura soddisfa links_found = converted + sum(left_by_host) + unresolved. I link social, quelli di Google Sheets, la navigazione nella stessa cartella e i link NinjaBuy esistenti restano invariati. Ogni candidato alla conversione deve ricevere una risposta prima della scrittura del risultato; le risposte mancanti fanno fallire il lavoro.
Conservazione della cartella
Il risultato conserva stili, celle unite, dimensioni di righe e colonne e immagini come rappresentati dalla griglia analizzata. I segmenti di testo formattato si conservano nelle celle senza un collegamento ipertestuale di cella; le celle con link usano un’unica etichetta di testo e un collegamento ipertestuale. La cartella viene serializzata nuovamente: grafici, macro e altre funzionalità esterne alla griglia non vengono conservati.
XLSX supporta un collegamento ipertestuale per cella. La conversione sostituisce i link sul posto invece di aggiungerne un secondo accanto. Una cella con due o più destinazioni di link diverse che non siano immagini mantiene la prima come collegamento ipertestuale ed elenca le altre nella nota della cella, così nessuna destinazione va persa.
Limiti
| Risorsa | Massimo |
|---|---|
| File XLSX o CSV caricato | 20 MiB; deve corrispondere al conteggio di byte dichiarato |
| XLSX espanso o HTML combinato della sorgente Google | 64 MiB |
| Celle nell'intera conversione | 500.000 |
| Occorrenze di link trovate, incluse le ripetizioni | 100.000 |
| Ogni immagine | 10 MiB |
| Totale delle immagini uniche conservate | 32 MiB |
| Risultato XLSX serializzato | 64 MiB |
| Prenotazione di caricamento / firma di download | 15 minuti ciascuna |
Il superamento di un limite di analisi o scrittura causa un errore esplicito. Consulta Errori per invalid-workbook, upload-expired e upload-too-large.