none
excel y conversión de datos

    Pregunta

  • Hola.

    Planteo esta pregunta aquí debido a que en los distintos foros especificos de excel me han dicho que no hay solución, y por si acaso conoceis algun programa comaptible con windows 7 que pueda darme lo que quiero. Paso a explicarme.

    Necesito que los datos de un hoja excel entre como datos en una aplicacion que uso para medidiones. El problema es que salvando los datos de Excel en formato .csv (delimitados por punto y coma) salen sin formatear, es decir, una tabla excel una vez exportada la veriaomos como:

    1;2,15
    4;3,1
    2,1;1

    Y yo necesito que los datos de entrada a mi programa en mi ejemplo anterior sean:

    000000000000001 000000000002,15
    000000000000004 0000000000003,1
    0000000000002,1  000000000000001

    es decir, de longitud 15, delimitados por ceros y separados por un espacio en blanco.

    ¿alguien concoe alguna utilidad que sea capaz de hacer esto y que funciones en Windows 7?

    Gracias y perdón por el rollo.

     

     

    miércoles, 19 de mayo de 2010 4:06

Respuestas

  • Hola.

    Planteo esta pregunta aquí debido a que en los distintos foros especificos de excel me han dicho que no hay solución, y por si acaso conoceis algun programa comaptible con windows 7 que pueda darme lo que quiero. Paso a explicarme.

    Necesito que los datos de un hoja excel entre como datos en una aplicacion que uso para medidiones. El problema es que salvando los datos de Excel en formato .csv (delimitados por punto y coma) salen sin formatear, es decir, una tabla excel una vez exportada la veriaomos como:

    1;2,15
    4;3,1
    2,1;1

    Y yo necesito que los datos de entrada a mi programa en mi ejemplo anterior sean:

    000000000000001 000000000002,15
    000000000000004 0000000000003,1
    0000000000002,1  000000000000001

    es decir, de longitud 15, delimitados por ceros y separados por un espacio en blanco.

    ¿alguien concoe alguna utilidad que sea capaz de hacer esto y que funciones en Windows 7?

    Gracias y perdón por el rollo.


    Se puede convertir de una manera sencilla con el propio sistema oeprativo sin más que usar lenguaje de comandos. Es decir te creas con el cuaderno de notas, un archvo de texto pero cuya extensión termine en .cmd con el siguiente contenido:

    @echo off
    setlocal enabledelayedexpansion
    set mask=:000000000000000
    for /f "tokens=* delims=" %%i in (tu_excel.csv) do (
       set dat=
       set a=%%i
       call :tr01 !a:,=.!
       echo !dat!
    )
    endlocal
    goto :EOF

    :tr01
    if {%1} == {} goto :EOF
    if "%dat%" NEQ "" set dat=%dat%@
    set tmp=%1%mask%
    for /f "tokens=1,2 delims=:" %%s in ("%tmp:~,16%") do (
       set tmp=%%t%%s
       set tmp=!tmp:~,15!
    )
    set dat=%dat%%tmp:.=,%
    set dat=%dat:@= %
    shift
    goto :tr01

    ---------------

    NOTA: Cambia tu_excel.csv en la cuarta linea por el fichero tuyo y deja este .cmd en la msima carpeta donde exté ese excel para ejecutarlo desde allí. Supongo que sabes que para ejecutar ese .cmd debes hacerlo en Simbolo del Sistema y la salida convertida de la dejará en pantalla. Si a su vez quieres que te la deje en un fichero por ejemplo, "salida.txt", y suponiendo que has guardado el script anterior con nombre "conversion.cmd", deberias ejecutar:

    conversion.cmd

    te lo mostrará por pantalla. Y en cambio:

    conversion.cmd > salida.txt

    lo convierte y en vez de mostrartelo por pantalla te lo dejará en "salida.txt".


    Jose Manuel Tella Llop news://jmtella.com

    miércoles, 19 de mayo de 2010 4:22