Pergunta

Estou usando o banco de dados baseado na Web para o qual preciso adicionar recursos de planilha ao seu front -end. Eu estava pensando que poderia usar planilhas do Google Docs. O script do Google App parece ter o funcionalmente que eu preciso. Em particular, posso usar o serviço URLFETCH combinado com eventos ONEDIT para manter a planilha e o banco de dados em sincronização - estilo Ajax. Também me permite muita flexibilidade na construção, economia e compartilhamento das planilhas

No entanto, algumas coisas sobre o Google App Script me deram uma pausa. Ele executa o lado do servidor, por isso é difícil depurar localmente. Ele não tem nenhum tipo de depurador com pontos de interrupção ou passo. Não pode importar módulos ou bibliotecas externas. Sem JSLint. Sem isso, comecei a conseguir o sentimento "Uh, oh, isso vai doer".

Então, estou me perguntando se há uma maneira melhor de aparafusar a funcionalidade de planilha acessível ao navegador para um banco de dados baseado na Web existente? Ou existem práticas recomendadas para aproveitar ao máximo o script do Google App?

EDIT: Estas são as soluções potenciais em ordem do que seria melhor para o meu aplicativo:

  1. Motor de planilha JavaScript baseado no navegador. (Pode não existir.)
  2. Módulo do motor da planilha Python que posso instalar no Google App Engine. (Eu também não vi isso.)
  3. Uma abordagem mais robusta e Ajaxiana para as planilhas do Google. (Veja a pergunta original.)
  4. Motores de planilha de código aberto que posso instalar no EC2. (Estes parecem existir - possivelmente Socialcalc, ou Planilha simples. Recomendações?)
Foi útil?

Solução

Usamos a funcionalidade de planilha em uma página da web, mas em vez de escrever todos os recursos de uma planilha, usamos um mecanismo de cálculo O que nos dá o coração programático da funcionalidade da planilha. Um mecanismo de cálculo sabe como calcular centenas de tipos de fórmulas, lidar com dependências (e a ordem entre dependências), formatação de células etc. No meu caso específico, usamos o Spreadsheetgear - http://www.spreadsheetgear.com/products/spreadsheetgear.net.aspx

Criamos uma representação HTML de uma planilha com navegação celular e vários outros recursos usando algum JavaScript. Quando precisamos da folha para recalcular (por exemplo, F9 no Excel), enviamos a planilha inteira para o servidor, pedimos para calcular tudo e, em seguida, reabastecer a representação da página da web com os resultados. Isso também pode escrever no banco de dados, dependendo do que está na planilha.

Talvez eu precise da sua opinião neste momento, para ver se minha resposta não está muito longe.

Outras dicas

Banco de dados baseado na Web com uma capacidade de front-end da planilha? Soa como Ragic.

E você disse que precisa desenvolver seu próprio back-end, acho que você pode usar a API HTTP para postar os dados no Ragic e fazer com que o usuário use o front-end da planilha enquanto usa a API para sincronizar seus dados.

Então, eu me cavei nisso, e doeu um pouco. Aqui estão os detalhes:

O mal:

  1. Você tem que usar o editor deles, sem JSLint.
  2. Sem depurador. Os scripts executam o lado do servidor, para que o Firebug e outras ferramentas do navegador possam ajudar zero. A transcrição "View-> Execution Transcript" e "View-> Logs" são uma pequena ajuda. Mas eles não parecem funcionar em eventos "OneDit".
  3. A conexão com a Web passa por seu serviço de URLFetch, que não possui um modo assíncrono. E não funciona em eventos "OneDit": http://code.google.com/p/google-apps-script-issues/issues/detail?id=185
  4. Eles basicamente têm três tipos de eventos. "Onload", "Oninstall" e "OneDit". Em particular, perdi gravemente um evento "OnClick".
  5. Nenhum suporte externo na biblioteca.

O bom:

  1. É JavaScript real, por isso funciona previsivelmente e posso usar uma ferramenta JSLINT externa.
  2. Curva de aprendizado superficial. Compreender as folhas, os intervalos e os valores definidos/obtidos são os conceitos -chave.
  3. Muita funcionalidade para manipular itens de planilha, formatação etc.
  4. Suporte da API de dados do Google? Eu não usei isso, mas parece que o caminho a seguir para conectar os recursos da Web externos.
  5. As atualizações bem integradas e com roteiro na minha planilha são imediatamente visíveis para outras pessoas que visualizam a planilha.

No geral, esse ambiente tem muito potencial, com muitas capacidades da interface do usuário, mas ainda parece perder alguma funcionalidade -chave para fazer o desenvolvimento real da produção.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top