Crear Excel sin DLL


([N1] Pepeto) #1

Aqui teneis la solucion:

 

http://www.ascsl.com/

 

un saludo

Jose Luis


([N3] Servinfor) #2

Hola Pepeto, me sale un problema quiero pasar datos de V7 a access para hacerlo más fácil quiero pasar los datos de v7 a excel y de ahí con una sencilla vinculación a access ya tengo los datos

He seguido tus instrucciones y se me crea la excel perfectamente pero cuando intento desde access vincular la hoja excel me dice el archivo que intento abrir tiene otro formato que el que indica su extensión y no me deja vincularlo. Si el archivo le doy a guardar como "archivo de excel 97-2003" ahora ya me deja vincularlo

En fichero abrir he puedto : rootPath() + "ordenes.xls"
y en grabar linea: "<table>
<tr>
<td>"+#ID+"</td>
<td>"+#FECHA +"</td>
<td>"+#CLIENTE.NAME+"</td>
<td>"+#ETIQUETAS.REFERENCIA+"</td>
<td>"+#CANTIDAD_FABRICADA+"</td>

</tr>

</table>

"

Como debo crear la excel correctamente?


([N1] Roberto Blasco) #3

Hola Servinfor

Perdona que sea indiscreto. ¿Para qué quieres crear una pseudo hoja excel para luego vincularla a una bbdd access?

Si el fin es conseguir exportar los datos a una bbdd access quizá te fuera más sencillo exportar a csv desde Velneo.

Un saludo. Roberto Blasco.


([N3] Servinfor) #4

Pues la quería importar porque no se me había ocurrido lo que me has dicho. Que grande eres Roberto, muchas gracias por el aporte


([N1] Pepeto) #5

Como te indica Roberto, es mejor exportar a CSV para luego importar directamente.

El truco que puse en el blog esta bien para evitar el uso de las DLL, pero quiero aclarar que no estamos guardando un fichero con la estructura propia de Excel, y aunque Excel lo abre sin problemas, es necesario guardarlo posteriormente en su propio formato.

Que este truco funcione, no quiere decir que sea la solucion a todos los problemas. Para determinadas tareas, puede que sea mejor el uso de la DLL, permitiendo abrir, editar y guardar con el formato original.

un saludo
Jose Luis
http://www.ascsl.com
http://ascsl.net


([N2] gegeo) #6

Supongo que la mayoria lo sabreis, pero no esta de más dejar constancia:

Peleandome los ultimos dias con ficheros de texto separados por tabulaciones, he dado con otra forma de crear un excel sin dll, ademas del que ya ofrece el Sr.Pepeto.

Si tenemos un proceso de exportacion a texto, con separador, simplemente sustituyendo el separador que tengais por este otro " t ", y sustituyendo la extension del fichero ".txt" por ".xls", nos guardara un fichero xls, que el excel reconocera, y colocara cada campo en una celda.

Ahora bien, como bien apunta Pepeto en la respuesta anterior,

no estamos guardando un fichero con la estructura propia de Excel, y aunque Excel lo abre sin problemas, es necesario guardarlo posteriormente en su propio formato.

Sirve como solucion rapida para ver informacion en excel, sin complicarse quizas algo mas, realizando lo mismo en html. o aun mas con la DLL.

Saludos ;)

Editado: el separador t hace de tabulador. Mas info en Secuencias de escape en cadenas


([N1] Pepeto) #7

Muchas gracias a ti, por seguir aportando nuevas ideas.

un saludo
José Luis
http://www.ascsl.com


([N2] bannu) #8

Y digo yo, porqué no creas el fichero Access directamente con ODBC, ya que V7 nos permite, interactuar con bases de datos externas.

Con SQL en Access no podrás crear un fichero directamente, pero lo creas con el propio Access, y utilizando SQL eliminas todos los registros antes de la exportación y listo.

Nota: No he probado, pero incluso puedes crear archivos Excel mediante ODBC, ejemplo cadena de conexión:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";


([N3] blavan) #9

Yo desde la v.2 siempre hice lo siguiente:
Grabar un fichero de texto terminado en .csv y
grabar las lineas de texto con los campos separados por ;(punto y coma)
Como propuesta de mejora importante seria que el usuario pudiese seleccionar campos
tal como hace vdevelop para la creación de formularios