Domanda

Sto utilizzando un database basato sul Web per il quale devo aggiungere funzionalità di foglio di calcolo al front-end.Stavo pensando che potrei utilizzare i fogli di calcolo di Google Docs.Il loro Google App Script sembra avere le funzionalità di cui ho bisogno.In particolare posso utilizzare il servizio URLFetch combinato con gli eventi onEdit per mantenere sincronizzati il ​​foglio di calcolo e il DB: stile AJAX.Mi consente inoltre molta flessibilità nella costruzione, salvataggio e condivisione dei fogli di calcolo

Tuttavia alcune cose su Google App Script mi ​​hanno fatto riflettere.Funziona lato server quindi è difficile eseguire il debug localmente.Non ha alcun tipo di debugger con punti di interruzione o stepping.Non può importare moduli o librerie esterne.Nessun JSLint.Senza questi ho iniziato ad avere la sensazione "Uh, oh, questo farà male".

Quindi mi chiedo se esiste un modo migliore per integrare la funzionalità del foglio di calcolo accessibile dal browser a un database esistente basato sul Web?Oppure esistono best practice per ottenere il massimo da Google App Script?

MODIFICARE:Queste sono le potenziali soluzioni in ordine di ciò che sarebbe meglio per la mia applicazione:

  1. Motore di fogli di calcolo JavaScript basato su browser.(Potrebbe non esistere.)
  2. Modulo del motore per fogli di calcolo Python che posso installare su Google App Engine.(Non ho visto neanche questo.)
  3. Un approccio più robusto e AJAXiano ai fogli di calcolo Google.(Vedi domanda originale.)
  4. Motori per fogli di calcolo open source che posso installare su EC2.(Sembra che esistano – forse SocialCalc, O Foglio di calcolo semplice.consigli?)
È stato utile?

Soluzione

Utilizziamo la funzionalità del foglio di calcolo su una pagina Web, ma invece di creare script per tutte le funzionalità di un foglio di calcolo, utilizziamo a motore di calcolo che ci fornisce il cuore programmatico della funzionalità del foglio di calcolo.Un motore di calcolo sa come calcolare centinaia di tipi di formule, gestire le dipendenze (e l'ordine tra le dipendenze), la formattazione delle celle, ecc.Nel mio caso particolare, utilizziamo SpreadsheetGear - http://www.spreadsheetgear.com/products/spreadsheetgear.net.aspx

Creiamo una rappresentazione HTML di un foglio di calcolo con navigazione nelle celle e varie altre funzionalità utilizzando alcuni JavaScript.Quando abbiamo bisogno del foglio da ricalcolare (es. F9 in Excel) inviamo l'intero foglio di calcolo al server, gli chiediamo di calcolare tutto e poi riempiamo la rappresentazione della pagina web con i risultati.Questo potrebbe anche scrivere nel database a seconda di cosa c'è nel foglio di calcolo.

Forse ho bisogno del tuo contributo a questo punto, per vedere se la mia risposta non è troppo fuori strada.

Altri suggerimenti

Database basato sul Web con funzionalità front-end per fogli di calcolo?Sembra Ragico.

E hai detto che devi sviluppare il tuo backend, penso che puoi utilizzare la loro API HTTP per pubblicare i dati su Ragic e fare in modo che l'utente utilizzi il front-end del foglio di calcolo mentre usi l'API per sincronizzare i tuoi dati.

Quindi ho approfondito la cosa da solo, e mi ha fatto un po' male.Ecco i dettagli:

Il cattivo:

  1. Devi usare il loro editor, no JSLint.
  2. Nessun debugger.Gli script vengono eseguiti lato server, quindi Firebug e altri strumenti del browser non sono di alcun aiuto.Le opzioni "Visualizza->Trascrizione dell'esecuzione" e "Visualizza->Log" sono di piccolo aiuto.Ma non sembrano funzionare negli eventi "onEdit".
  3. La connessione al web passa attraverso il loro servizio UrlFetch che non ha una modalità asincrona.E non funziona affatto all'interno degli eventi "onEdit": http://code.google.com/p/google-apps-script-issues/issues/detail?id=185
  4. Fondamentalmente hanno tre tipi di eventi."onLoad", "onInstall" e "onEdit".In particolare mi sono perso gravemente un evento "onClick".
  5. Nessun supporto per librerie esterne.

Il bene:

  1. È un vero JavaScript, quindi funziona in modo prevedibile e posso utilizzare uno strumento JSLint esterno.
  2. Curva di apprendimento poco profonda.Comprendere fogli, intervalli e impostare/ottenere valori sono i concetti chiave.
  3. Molte funzionalità per la manipolazione degli elementi del foglio di calcolo, la formattazione, ecc.
  4. Supporto per l'API dati di Google?Non l'ho usato, ma sembra la strada da percorrere per connettersi a risorse web esterne.
  5. Gli aggiornamenti ben integrati e basati su script sul mio foglio di calcolo sono immediatamente visibili agli altri che visualizzano il foglio di calcolo.

Nel complesso questo ambiente ha un sacco di potenziale, con molte funzionalità dell'interfaccia utente, ma sembra ancora che manchino alcune funzionalità chiave per lo sviluppo della produzione reale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top