2011-11-16 34 views
7

¿Hay alguna forma de exportar datos JSON a CSV/Excel sin ninguna interacción con el lado del servidor? ¿Solo usando Javascript? o Flash? Actualmente estoy usando ZeroClipboard para copiar el valor en el portapapeles, pero me gustaría abrir directamente el valor generado en Excel desde el navegador (FF, Chrome, IE, etc.).Javascript o exportación Flash a CSV/Excel

Thx.

+1

ver http://stackoverflow.com/questions/3665115/create-a-file-in-memory-for-user-to-download-not-through-server –

Respuesta

8

Lejos y lejos, la exportación más limpia y fácil desde las tablas a Excel es Jquery DataTables Table Tools plugin. Se obtiene una rejilla que ordena, filtros, órdenes, y las páginas de sus datos, y con sólo unas pocas líneas adicionales de código y dos pequeños archivos incluido, se obtiene la exportación a Excel, PDF, CSV, a portapapeles y a la impresora .

Este es todo el código que se requiere:

$(document).ready(function() { 
    $('#example').dataTable({ 
     "sDom": 'T<"clear">lfrtip', 
     "oTableTools": { 
     "sSwfPath": "/swf/copy_cvs_xls_pdf.swf" 
     } 
    }); 
}); 

Así, rápido de implementar, no hay limitaciones del navegador, sin lenguaje de servidor requerido, y sobre todo muy fácil de entender. Es un ganar-ganar. Sin embargo, lo único que tiene límites es el estricto formato de las columnas.

+0

¿Hay alguna manera de tener la opción abierta al exportar? extraño, pero solo puedo guardar el documento de Excel – ic3

+0

¿Es posible obtener esa bondad de exportación de TableTools sin agregar ninguna de las funciones de DataTables? Quiero decir, ya tengo una tabla HTML con clasificación y filtrado y mucho más (usando otros métodos, no DataTables), ahora solo necesitaba las funciones de exportación ... –

+0

Estoy tratando de usar TableTools, pero quiero usar mis propios botones en lugar de usar los botones de swf. ¿Es posible? – Firnas

2

No parece haber una manera infalible de hacerlo solo en el lado del cliente en todos los navegadores y tamaños de archivos. Todas las soluciones parecen utilizar uno de los siguientes:

  • el plugin de Flash (por ejemplo: Downloadify): los insectos y no URL
  • de datos móviles compatibles: soporte y tamaño restricciones limitadas IE
  • HTML5: métodos de descarga no estandarizados a través de navegadores.

Dependiendo de su caso de uso, puede que se salga con la suya. Aquí hay algunas otras publicaciones sobre SO con más detalles.

Tenga en cuenta que esta parte de la respuesta de Ramandeep Singh es incorrecto:

Así, rápido de implementar, no hay limitaciones del navegador, no del lado del servidor idioma requerido, y sobre todo muy FÁCIL de entender.

DataTables utiliza un complemento flash si nos fijamos en el código. No funcionará en navegadores móviles (iOS, dispositivos Android recientes sin enraizamiento, Windows 8 RT sin cortes o proceso de aprobación de MSFT). Aquí hay una publicación de su sitio también: http://www.datatables.net/forums/discussion/7563/export-to-csvpdf-without-tabletools/p1