Hola a todos.
Tengo un enlace el cual abre un archivo excel que contiene varias hojas, quiero abrirlo en una hoja específica.
como puedo hacer eso?
asi tengo el enlace: <a href= d:/fuentes.xls>Abrir XLS</a>
| |||
abrir archivo excel en una hoja específica Hola a todos. Tengo un enlace el cual abre un archivo excel que contiene varias hojas, quiero abrirlo en una hoja específica. como puedo hacer eso? asi tengo el enlace: <a href= d:/fuentes.xls>Abrir XLS</a> |
| ||||
Respuesta: abrir archivo excel en una hoja específica Tu puedes crear tus propios componentes ActiveX en VisualBasic(Si alguna vez programaste en ello, hoy ya existe .NET), y con tu propio componente personalizado puedes hacer lo que quieras con windows... Mira ha ver si esto te funciona, pero recuerda solo sera compatible con IExplorer...Para Firefox puedes crear tus propios componentes y en la practica sería algo parecido... En la página de Firefox puedes encontrar algunas especificaciones del como hacerlo... Un saludo.
Código:
<html> <head> <script language="javascript"> //defino la función que hace la operación function MIexcel(){ var IEx='';//is IE var Hoja; var Libro; var Vcols; var ObjetoXLS;//Objeto excel IEx=document.all?1:0; //is IE confirm if(IEx==1){ ObjetoXLS = new ActiveXObject('Excel.Application'); Libro = ObjetoXLS.Workbooks.Add; //Libro Hoja = Libro.Worksheets(1); //Hoja Hoja.Activate(); //Activar la hoja ObjetoXLS.ActiveSheet.Cells(2,2).Value = 'Hola'; ObjetoXLS.Application.Visible = true; }else{//Crear un complemento para firefox alert('Esto solo es compatible para iexplorer'); } } MIexcel(); </script> </head> <body> </html> |
| ||||
Respuesta: abrir archivo excel en una hoja específica En tu caso podrías crear una opción de descarga en un botón o link, Creas un popup de configuración de descarga del archivo y al finalizar activas la hoja donde deseas que se muestre la información. Y espero hayas solucionado tus problemas con los Check. Un saludo. |
| ||||
Respuesta: abrir archivo excel en una hoja específica me falto esto... ObjetoXLS = new ActiveXObject("Excel.Application"); RUTA = "c:\Documento.xls"; Libro = ObjetoXLS.Workbooks.OPEN(RUTA,false,false); Hoja = Libro.Worksheets(1); Hoja.Application.Visible = true; //Mostrar excel una vez ejecutado ExcelAp.visible = true; //Abrir un archivo específico var excBook = ExcelAp.Workbooks.open("c:\Documento.xls"); //Libro.Close(true);//Cerrar libro //ObjetoXLS.Application.Quit();//cerrar aplicacion |
| |||
Respuesta: abrir archivo excel en una hoja específica Hola, te agradezco muchisimo tu respuesta, lo voy a probar espero interpretarlo bien. y sobre los check pues no lo solucione como quisiera, estoy en lo de cambiar el cursor del mouse por el relojito, aunque si lo cambia después de un buen rato transcurrido después de darle clic en el enlace de "seleccionar todos". voy a probar la rutina y te comento como me fue |
| |||
Respuesta: abrir archivo excel en una hoja específica hola lo puse asi y no aparece nada <html> <head> <script language="javascript"> //defino la función que hace la operación function MIexcel(){ var IEx='';//is IE var Hoja; var Libro; var Vcols; var ObjetoXLS;//Objeto excel IEx=document.all?1:0; //is IE confirm if(IEx==1){ ObjetoXLS = new ActiveXObject('Excel.Application'); Libro = ObjetoXLS.Workbooks.Add; //Libro Hoja = Libro.Worksheets(1); //Hoja Hoja.Activate(); //Activar la hoja ObjetoXLS.ActiveSheet.Cells(2,2).Value = 'Hola'; ObjetoXLS.Application.Visible = true; }else{//Crear un complemento para firefox alert('Esto solo es compatible para iexplorer'); } } ObjetoXLS = new ActiveXObject("Excel.Application"); RUTA = "d:/fuentes.xls"; Libro = ObjetoXLS.Workbooks.OPEN(RUTA,false,false); Hoja = Libro.Worksheets(2); Hoja.Application.Visible = true; //Mostrar excel una vez ejecutado ExcelAp.visible = true; //Abrir un archivo específico var excBook = ExcelAp.Workbooks.open("c:\Documento.xls"); //Libro.Close(true);//Cerrar libro //ObjetoXLS.Application.Quit();//cerrar aplicacion MIexcel(); </script> </head> <body> </html> Estaré haciendo algo mal? |
| ||||
Respuesta: abrir archivo excel en una hoja específica pero si recorres la lista en ambos sentidos, te reduce el tiempo a la mitad, y la carga de memoria... ya no tendrías un ciclo que va de cero a 1000, sino de 0 ha 500... Y si retiras el if, colocando id's de cada check...puede reducir aun mas. No se si no entendiste mi explicación. Si gustas me pasas el código y te hago un ejemplo. Bueno, al final no se como lo solucionaste, pero la opción del relojito no me parece la mejor. |
| |||
Respuesta: abrir archivo excel en una hoja específica A mi tampoco me gusta la idea del relojito, además de que no funciona como quisiera. Así tengo el ciclo para los check: J=500; if (dato == "Todo") { for (I=1; I<=500; I++) { Nom="document.ValidForms.S" + I + ".checked = true"; eval(Nom); Nom="document.ValidForms.S" + J + ".checked = true"; eval(Nom); J=J-1; } } else { document.ValidForms.reset(); } |
| |||
Respuesta: abrir archivo excel en una hoja específica Hola otra vez ya funciona la rutina del archivo excel solo que no lo abre en la hoja que quiero, asi lo tengo: <html> <head> <script language="javascript"> //defino la función que hace la operación function MIexcel(){ var IEx='';//is IE var Hoja; var Libro; var Vcols; var ObjetoXLS;//Objeto excel IEx=document.all?1:0; //is IE confirm if(IEx==1){ ObjetoXLS = new ActiveXObject("Excel.Application"); RUTA = "d:/fuentes.xls"; Libro = ObjetoXLS.Workbooks.OPEN(RUTA,false,false); Hoja = Libro.Worksheets(2); Hoja.Application.Visible = true; //Mostrar excel una vez ejecutado ExcelAp.visible = true; //Abrir un archivo específico var excBook = ExcelAp.Workbooks.open("d:/fuentes.xls"); //ObjetoXLS = new ActiveXObject('Excel.Application'); //Libro = ObjetoXLS.Workbooks.Add; //Libro //Hoja = Libro.Worksheets(2); //Hoja //Hoja.Activate(); //Activar la hoja //ObjetoXLS.ActiveSheet.Cells(2,2).Value = 'Hola'; //ObjetoXLS.Application.Visible = true; }else{//Crear un complemento para firefox alert('Esto solo es compatible para iexplorer'); } } //Libro.Close(true);//Cerrar libro //ObjetoXLS.Application.Quit();//cerrar aplicacion //MIexcel(); </script> </head> <body> <a href= "javascript:MIexcel();">Abrir Excel</a> </body> |
| ||||
Respuesta: abrir archivo excel en una hoja específica Cita: Exacto!, era lo que tenia propuesto... estaba apunto de enviarte un código parecido, pero veo que ya lo tienes... y trabaja mejor con los id's... es mas rapido.
Iniciado por Betina232022 A mi tampoco me gusta la idea del relojito, además de que no funciona como quisiera. Así tengo el ciclo para los check: J=500; if (dato == "Todo") { for (I=1; I<=500; I++) { Nom="document.ValidForms.S" + I + ".checked = true"; eval(Nom); Nom="document.ValidForms.S" + J + ".checked = true"; eval(Nom); J=J-1; } } else { document.ValidForms.reset(); } function marcaAllCheckBox(objForm){ //Es mejor separar la variable y no estarla analizando en el for, aumenta el rendimiento var miform=document.forms[objForm].elements.length; k = miform-1; miform = Math.floor(miform/2); for (i=0;i<=miform;i++){ ... } } También puedes recuperar los check en grupos de 100 en 100, y haces un sistema de paginación. Puedes agregar 4 variables... y divides el ciclo en cuatro: 2 que aumentan, y 2 que disminuyen. digamos que el ciclo vale 1000. se divide en 4 y es 250 el numero de repeticiones, algo significativo. ahora: i=0 hasta 250; //aumenta. j=500 hasta 250; //disminuye. k=500 hasta 750; //aumenta. y Q=1000 hasta 750. //disminuye. Dividimos el tiempo en 4... y es aun mas rápido si los objetos no están visibles. Crear un div contenedor de todos los check, y darle la opción CSS display:none; antes de iniciar el proceso, al finalizar tornarlo visible nuevamente. Última edición por SPAWN3000; 11/02/2009 a las 16:52 |
| ||||
Respuesta: abrir archivo excel en una hoja específica Listo, en los comentarios existía una opción que adicione pensando en tu problema: Hoja.Activate(); //Activar la hoja <html> <head> <script language="javascript"> //defino la función que hace la operación function MIexcel(){ var IEx='';//is IE var Hoja; var Libro; var Vcols; var ObjetoXLS;//Objeto excel IEx=document.all?1:0; //is IE confirm if(IEx==1){ ObjetoXLS = new ActiveXObject("Excel.Application"); RUTA = "c:/fuentes.xls"; Libro = ObjetoXLS.Workbooks.OPEN(RUTA,false,false); Hoja = Libro.Worksheets(2); Hoja.Activate(); //Activar la hoja ObjetoXLS.Application.Visible = true; //Mostrar excel una vez ejecutado ExcelAp.visible = true; //Abrir un archivo específico var excBook = ExcelAp.Workbooks.open("c://fuentes.xls"); //ObjetoXLS = new ActiveXObject('Excel.Application'); //Libro = ObjetoXLS.Workbooks.Add; //Libro //Hoja = Libro.Worksheets(2); //Hoja //Hoja.Activate(); //Activar la hoja //ObjetoXLS.ActiveSheet.Cells(2,2).Value = 'Hola'; //ObjetoXLS.Application.Visible = true; }else{//Crear un complemento para firefox alert('Esto solo es compatible para iexplorer'); } } //Libro.Close(true);//Cerrar libro //ObjetoXLS.Application.Quit();//cerrar aplicacion //MIexcel(); </script> </head> <body> <a href= "javascript:MIexcel();">Abrir Excel</a> </body> </html> Creo que no es todo, un saludo. |
| |||
Respuesta: abrir archivo excel en una hoja específica Hola, perdón por no contestarte ayer. Gracias por tu ayuda, ya tengo las rutinas. Y abusando de tu amabilidad, en la rutina del archivo excel cuando le doy clic en el enlace me aparece un mensaje de seguridad para los activeX. como podria evitarlo? |
| ||||
Respuesta: abrir archivo excel en una hoja específica Cita: Realmente eso te aparece por el echo de que ejecutas tu ejemplo en local: Para Javascript Común añades esto:
Código:
Pero me temo que esto bloquearía por completo tu ActiveX y el ejemplo no funcionaría... Pero creo que se puede analizar si el cliente tiene habilitado activex o no e informarle que debe habilitarlo(Es algo mas presentable). <body> <!-- saved from url=(0013)about:internet --> El resto de tu código... </body> Última edición por SPAWN3000; 12/02/2009 a las 16:51 |
| ||||
Respuesta: abrir archivo excel en una hoja específica Cita: IMPORTANTE:Bueno, realmente esta opción se utiliza cuando normalmente tu aplicación esta destinada a trabajar en una empresa o una intranet donde todos los equipos son configurados de igual manera. Por que?, excel no es un archivo nativo de la web, por ello el único en donde se puede abrir...(Son de la misma empresa). Tal vez esto te interese: Num Sum, es algo similar a google Docs. http://numsum.com/ http://numsum.com/spreadsheet/show/35 Creo que para firefox esto te puede ayudar: http://www.iol.ie/~locka/mozilla/plugin.htm Y también es su página indican como crear componentes propios. habría que utilizar la variable que identifica el tipo de navegador y aplicar el código respectivo. Por que no me cuentas que estas haciendo y te puedo aportar soluciones? Última edición por SPAWN3000; 12/02/2009 a las 16:57 |
| ||||
Respuesta: abrir archivo excel en una hoja específica Adivinando un poco... Imagino que lo que deseas es mostrarle al cliente información de la BD pero como un reporte excel... Como lo resolvería yo, Yo crearía una tabla simple y elemental y a un lado un menú para ver lo que sería cada página... Ahora, si deseas algo de dinamismo similar a excel (Utiliza ajax). Y si deseas algo rápido, gratuito y bien presentado podrías comenzar con la Librería GWT-EXT: http://extjs.com/ Ahora, digamos que al cliente le intereso la información de la tabla...En ese entonces le doy la opción de descargar el archivo Excel... Pero!, todo lo creo desde el servidor(Existen librería para PHP, Java(JSP),ASP...) y simplmente le doy un link de descarga del archivo .xls. |