opendatasicilia / tansignari

"T'ansignari e t'appeddiri"
http://tansignari.opendatasicilia.it
Creative Commons Attribution 4.0 International
18 stars 10 forks source link

Come importare su google sheets un file csv che supera il limite massimo? #260

Closed gbvitrano closed 5 months ago

gbvitrano commented 5 months ago

Buongiorno, volevo giocare con i dati del PUN Piattaforma Unica Nazionale dei punti di ricarica per i veicoli elettrici, resi disponibili dall'associazione onData. Ma google sheets restituisce un errore, il contenuto della risorsa supera il limite massimo consentito

2024-03-29_20h58_32

C'è modo di superare tale limite?

gbvitrano commented 5 months ago

Risolto :-) Seguendo un consiglio di @aborruso ho fatto una ricerca usando #PerplexityAI. Qui trovate un bella lezione sull'uso di #PerplexityAI

Ecco uno script in Google Apps Script che ti permette di importare un file CSV che supera il limite di dimensione in Google Sheets:

` function importLargeCSV() { // Inserisci l'URL del file CSV che vuoi importare var csvUrl = "https://example.com/large-file.csv";

// Imposta il numero massimo di righe da importare per volta var maxRowsPerImport = 50000;

// Crea un nuovo foglio di lavoro per i dati importati var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getSheets()[0]; // Usa il primo foglio di lavoro

// Inizializza il contatore delle righe importate var rowsImported = 0;

// Importa i dati in blocchi fino a quando non vengono importate tutte le righe while (true) { try { // Importa il prossimo blocco di dati var data = Utilities.parseCsv(UrlFetchApp.fetch(csvUrl).getContentText()); var numRows = data.length;

  // Inserisci i dati nel foglio di lavoro
  sheet.getRange(rowsImported + 1, 1, numRows, data[0].length).setValues(data);

  // Aggiorna il contatore delle righe importate
  rowsImported += numRows;

  // Interrompi il ciclo se sono state importate tutte le righe
  if (numRows < maxRowsPerImport) {
    break;
  }
} catch (e) {
  // Gestisci gli errori durante l'importazione
  Logger.log("Errore durante l'importazione: " + e.message);
  break;
}

}

Logger.log("Importazione completata. Righe importate: " + rowsImported); } `

gbvitrano commented 5 months ago

usando lo script google sheets ha importato un file di 32008 righe

gpirrotta commented 5 months ago

Ciao @gbvitrano io solitamente faccio così, senza usare cicli:

function getBigCSV() {
  const sheet = SpreadsheetApp.getActive().getSheetByName('Foglio1');
  const url = 'https://raw.githubusercontent.com/ondata/rete_ricarica_veicoli_elettrici/main/data/rete_ricarica_veicoli_elettrici.csv';
  const csv = UrlFetchApp.fetch(url);
  const data = Utilities.parseCsv(csv);
  sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}
gbvitrano commented 5 months ago

Piattaforma Unica Nazionale dei punti di ricarica per i veicoli elettrici, resi disponibili dall'associazione onData.

Aggiungo la tua soluzione alla ricetta, grazie :-)