Ver Mensaje Individual
  #7 (permalink)  
Antiguo 28/09/2012, 17:29
Avatar de arrakshe
arrakshe
 
Fecha de Ingreso: septiembre-2012
Mensajes: 19
Antigüedad: 11 años, 7 meses
Puntos: 2
Respuesta: Funcion para exportar a CSV con Javascript

Cita:
Iniciado por lubtufano Ver Mensaje
¿Para qué usas encodeURIContent()? Me parece que si no se usara funcionaría de manera correcta, si es que el archivo CSV ya existe, bueno tambien habría que quitar "data:application/csv,"

Código Javascript:
Ver original
  1. function exportar(data) {
  2.       var myWindow = window.open(data, "Export CSV");
  3.       myWindow.focus();
  4.     }

...

Pero no veo el caso de esto.
Hola, muchas gracias por aportar, vieras que probé esos ejemplos que pusiste y lo que hacen es tratar de abrir una nueva pestaña en donde se mostrarían los datos sin embargo dada la forma en la que funciona mi aplicación el servidor impide dicha apertura, con el código que tengo se genera la orden de guardado de un archivo(solo del lado del cliente y el archivo no existe como en php) ademas utilizo el encodeURIContent solo para que al momento en el que aparece la ventana de guardado del navegador no se vean los datos a simple vista, a parte de eso desconozco para que sirve . Al final mi código quedo asi, funciona para chrome y firefox descargando el archivo al cual solo hay que agregarle la extension correspondiente(.csv, .xls, .txt) y en IE abre una nueva ventana con la información(ya se que dije que el server no deja, pero parece que solo en IE lo permite, en los otros me niega el acceso)

Código Javascript:
Ver original
  1. function exportar(data) {
  2.            
  3.             if (navigator.appName == 'Microsoft Internet Explorer') {
  4.                
  5.                 var popup = window.open('','csv','');
  6.                 popup.document.body.innerHTML = '<pre>' + data + '</pre>';
  7.  
  8.             }else{
  9.                
  10.                 location.href='data:application/download; charset=utf8,' + encodeURIComponent(data);
  11.                
  12.             }
  13.  
  14.            
  15.             return true;
  16.            
  17.            
  18.         }