Exportar a Excel


([N1] juanpelaez) #1

Buenos Días,

Sabeis si se puede exportar los datos de una rejilla a Excel sin usar la vtools … ?.

Gracias


([N3] pacosatu) #2

Hola juanpelaez.

La exportación a Excel de vTools es una más de las muchas posibilidades que hay de hacerlo.

Nuestro amigo Cristian publicó hace tiempo una utilidad JS (http://www.vclouden.com/static/excelwritter) que exporta una Lista a formato XML compatible con Excel.

Tiene la ventaja de que es multiplataforma al no necesitar ni Windows ni tener Excel instalado.

Saludos
Paco Satué


([N4] ccuesta) #3

Buenos días,

las VTools lo que hacen es crear un archivo VBScript que se ejecuta en en Windows para cargar la hoja de excel. Este archivo no deja de ser un archivo de texto que puedes generar desde un manejador de evento en formato velneo si no quieres hacerlo con javascript. Esto tiene la ventaja de que puedes jugar cono todos los parámetros de excel para hacer la exportación a tu gusto( La posicion en la hoja, fuente, pestaña etc).

Teniedo la lista asociada a la rejilla y usando los comando API de la base de datos puedes recorrer los campos y guardar el valor en el fichero VBScript. El problema podrías tenerlo (Si no usas javascript) para distinguir el tipo de campo (numérico, texto, fecha …) y formatear adecuadamente la celdilla.

For ( X, 0, x<(NUM_CAMPOS+1), 1 )
APIVEL: Get campo por numero ( x, VALOR_CAMPO )
Set ( VALOR_CAMPO, replaceString(VALOR_CAMPO, COMILLAS, “’”) )
Fichero: Grabar línea ( ficheroVBS, “objSheet.cells(” + LINEA + “,” + (x+1) +").Value =" + COMILLAS +VALOR_CAMPO +COMILLAS, )


([N1] priorcabo) #4

Hola, ccuesta muy interesante tu rutina
Pero aqui hay tres variables que no entiendo como se cargan
NUM CAMPOS, VALOR CAMPO , LINEA, COMILLAS

Gracias


([N1] juanpelaez) #5

Para Paco Satué, he implementado la utilidad que mencionas pero me da el siguiente error :

Requested keys of a value that is not an object. <global>() at 4jkb9amy.vca/exportador/excel.js:107

y no doy con el fallo …

Decir que al pulsar el boton que habilité aparece el dialogo para seleccion de carpeta y nombre de Archivo, es dando a ACEPTAR que me sale este error.

Alguna idea ?.


([N1] cristianvg2003) #6

Verifica que key en el exportaciones.js y la propiedad “Nombre” del proceso de exportación se correspondan, revisa el video por ese detalle.


([N4] ccuesta) #7

Hola de nuevo,

la rutina la uso en una utilidad que estoy preparando para generar consultas a la base de datos en tiempo de ejecución, algo así como el vDataClient pero orientado al usuario final donde él pueda generarse sus propias consultas tomando los campos que desee y filtrando como desee, el resultado lo lleva a una rejilla y de ahí si lo desea a Excel.

Alguna cosas las he tenido que sacar por javascript porque la tabla origen, los campos a visualizar etc varían de una consulta a otra.

NUM_CAMPOS: la puedes sacar mediante el comando “APIVEL: get números de campos (NombreTabla@proyecto)”
VALOR_CAMPO: lleva el contenido de cada uno de los campos a exportar
LINEA: Es una variable numérica generada por un for… que lleva el número de linea de Excel
COMILLAS: Variable alfa con el valor de las comillas para concatenar la cadena de cada línea Excel :
“Set (COMILLAS,getAlpha256Char(5))”


([N1] juanpelaez) #8

Bueno, a base de hacer pruebas creo que la he liado un poco, ya se por que no me funcionaba pero al
hacer tantos cambio y pruebas seguro que modifiqué algo en el script, ahora YA no me aparece la seleccion
de carpeta y me da el siguiente error :

Error en script: SyntaxError: Parse Error

Yo creo que toqué algo en el script… Que duro es ser novato !!!, alguien que me pueda pasar el archivo
excel.js para compararlo ?..

Alguna ayuda adicional ?..

Mil perdones por las molestias.