EXCEL celda con formato texto

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • sanvic
    Member
    • nov
    • 32

    #1

    EXCEL celda con formato texto

    Buenas,
    estoy haciendo un excel de tipo ole2, el caso es que tengo una de las celdas en la que guardo un numero de 19 posiciones pero en el excel se guarda 3,15649E+18
    en vez de
    3156490000222000089
    sabe alguien alguna manera de convertir la celda en celda de texto para que no me lo convierta.

    Gracias,
    Salu2.
  • paraujo
    Member
    • dic
    • 42

    #2
    Excel celda con formato texto

    Tenes la celda en formato general, hay que pasarla a formato número sin decimales.
    Sds.

    Comentario

    • sanvic
      Member
      • nov
      • 32

      #3
      Y como hago eso, he encontrado estas intrucciones pero intento adaptarlas a mi codigo y no cambia nada

      CALL METHOD OF sheet 'RANGE' = rango
      EXPORTING
      #1 = 'D1'
      #2 = 'D1'.
      * Se formatea el ancho de columna
      SET PROPERTY OF rango 'NUMBERFORMAT' = '#,##0'.
      SET PROPERTY OF rango 'COLUMNWIDTH' = 21.
      FREE OBJECT rango.

      muchas gracias,
      Salu2

      Comentario

      • sanvic
        Member
        • nov
        • 32

        #4

        buenas otra vez, me estoy volviendo un poco loca, pork para hacelo mas facil de probar y asegurarme de que el error no esta en ningun otro sitio, me he hecho un programita de prueba con el siguiente codigo, el caso es que en la primera linea, lo escribe como yo quiero pero en las siguientes dos lo escribe mal, a alguien se le ocurre por que puede ser
        *Crear excel
        CREATE OBJECT application 'EXCEL.APPLICATION'.
        SET PROPERTY OF application 'VISIBLE' = 1.

        CALL METHOD OF application 'WORKBOOKS' = workbook.
        CALL METHOD OF workbook 'Add' = workbook.

        GET PROPERTY OF application 'ActiveSheet' = sheet.
        SET PROPERTY OF sheet 'Name' = 'TISPL'.
        *Escribir tres veces el texto
        DO 3 TIMES.
        cont = cont + 1.
        CALL METHOD OF sheet 'Cells' = cells
        EXPORTING
        #1 = cont "Fila
        #2 = 1. "Columna

        CALL METHOD OF sheet 'RANGE' = rango
        EXPORTING
        #1 = 'A1'
        #2 = 'A1'.
        * Se formatea el ancho de columna
        SET PROPERTY OF rango 'NumberFormat' = '@'. "Formato texto
        SET PROPERTY OF rango 'COLUMNWIDTH' = 25.


        SET PROPERTY OF cells 'Value' = '3156490004598700015'.
        ENDDO.
        *salvar y cerrar
        CALL METHOD OF workbook 'SAVEAS'
        EXPORTING
        #1 = 'C:\Prueba Q01 TISPL\prueba.xls'.

        CALL METHOD OF workbook 'close'.
        CALL METHOD OF application 'QUIT'.
        FREE OBJECT application.
        FREE OBJECT workbook.
        FREE OBJECT sheet.
        FREE OBJECT cells.
        FREE OBJECT column.
        FREE OBJECT font.
        FREE OBJECT color.
        FREE OBJECT bold.

        Comentario

        • sanvic
          Member
          • nov
          • 32

          #5
          ya me respondo yo sola estaba seleccionando mal el rango

          muchas gracias de todos modos

          Comentario

          • luis999
            Member
            • jun
            • 82

            #6
            Hola, en el #2 debes pasarle 'A3', para que tome las 3 filas.

            CALL METHOD OF sheet 'RANGE' = rango
            EXPORTING
            #1 = 'A1'
            #2 = 'A3'.



            Originalmente publicado por sanvic

            buenas otra vez, me estoy volviendo un poco loca, pork para hacelo mas facil de probar y asegurarme de que el error no esta en ningun otro sitio, me he hecho un programita de prueba con el siguiente codigo, el caso es que en la primera linea, lo escribe como yo quiero pero en las siguientes dos lo escribe mal, a alguien se le ocurre por que puede ser
            *Crear excel
            CREATE OBJECT application 'EXCEL.APPLICATION'.
            SET PROPERTY OF application 'VISIBLE' = 1.

            CALL METHOD OF application 'WORKBOOKS' = workbook.
            CALL METHOD OF workbook 'Add' = workbook.

            GET PROPERTY OF application 'ActiveSheet' = sheet.
            SET PROPERTY OF sheet 'Name' = 'TISPL'.
            *Escribir tres veces el texto
            DO 3 TIMES.
            cont = cont + 1.
            CALL METHOD OF sheet 'Cells' = cells
            EXPORTING
            #1 = cont "Fila
            #2 = 1. "Columna

            CALL METHOD OF sheet 'RANGE' = rango
            EXPORTING
            #1 = 'A1'
            #2 = 'A1'.
            * Se formatea el ancho de columna
            SET PROPERTY OF rango 'NumberFormat' = '@'. "Formato texto
            SET PROPERTY OF rango 'COLUMNWIDTH' = 25.


            SET PROPERTY OF cells 'Value' = '3156490004598700015'.
            ENDDO.
            *salvar y cerrar
            CALL METHOD OF workbook 'SAVEAS'
            EXPORTING
            #1 = 'C:\Prueba Q01 TISPL\prueba.xls'.

            CALL METHOD OF workbook 'close'.
            CALL METHOD OF application 'QUIT'.
            FREE OBJECT application.
            FREE OBJECT workbook.
            FREE OBJECT sheet.
            FREE OBJECT cells.
            FREE OBJECT column.
            FREE OBJECT font.
            FREE OBJECT color.
            FREE OBJECT bold.

            Comentario

            • sanvic
              Member
              • nov
              • 32

              #7
              si me he dado cuenta pense que estaba seleccionando la columna, muchas gracias.

              Otra preguntita mi programa es un alv con un boton que descarga el excel y hasta que no vuelvo atras hasta la pantalla de selección el excel se me queda como enganchado y no se puede abrir, he intentado poniendo FREE a todos los objetos pero no parece ser eso, sabeis que puede ser.

              gracias,
              Saludos

              Comentario

              • luis999
                Member
                • jun
                • 82

                #8
                Si le pones esto ya no se visualiza el excel:

                set property of application 'visible' = 0.

                Originalmente publicado por sanvic
                si me he dado cuenta pense que estaba seleccionando la columna, muchas gracias.

                Otra preguntita mi programa es un alv con un boton que descarga el excel y hasta que no vuelvo atras hasta la pantalla de selección el excel se me queda como enganchado y no se puede abrir, he intentado poniendo FREE a todos los objetos pero no parece ser eso, sabeis que puede ser.

                gracias,
                Saludos

                Comentario

                • sanvic
                  Member
                  • nov
                  • 32

                  #9
                  Si eso ya lo tengo puesto y no se ve el excel, pero cuando ya se ha creado si lo intento abrir, no se abre solo se ve un trocito del excel y no es el de los datos, se queda como enganchado y para poder verlo tengo que salir del alv.

                  Gracias,
                  Salu2

                  Comentario

                  • sanvic
                    Member
                    • nov
                    • 32

                    #10
                    Alguien tiene idea de como hacer para cerrar completamente bien el excel y que se pueda abrir sin tener que volver atras en el alv ????

                    Ahora tengo este codigo:
                    CALL METHOD OF workbook 'SAVEAS'
                    EXPORTING
                    #1 = file.

                    CALL METHOD OF workbook 'close'.
                    CALL METHOD OF application 'QUIT'.
                    FREE OBJECT application.
                    FREE OBJECT workbook.
                    FREE OBJECT sheet.
                    FREE OBJECT cells.
                    FREE OBJECT column.
                    FREE OBJECT font.
                    FREE OBJECT color.
                    FREE OBJECT bold.

                    Gracias,
                    Salu2

                    Comentario

                    • luis999
                      Member
                      • jun
                      • 82

                      #11
                      Hola, yo hice un reporte parecido(algo lento), pero no tengo que volver a la pantalla de selección para abrir el excel, a ver si me mandas tu código para darle una mirada

                      Comentario

                      • sanvic
                        Member
                        • nov
                        • 32

                        #12
                        Ya te envie el código,
                        Muchiiiiiiiisimas gracias!!!! a ver si lo ves tu pork yo ha estas alturas ya no veo nada.

                        Salu2.

                        Comentario

                        • sanvic
                          Member
                          • nov
                          • 32

                          #13
                          Ya he conseguido que no se me quede colgado y ha sido quitando la linea

                          * CALL METHOD OF application 'QUIT'.

                          Yo pense que era para cerralo todo mejor, alguien sabe para que es y si me creara problemas el haberla quitado.

                          Gracias
                          Salu2.

                          Comentario

                          Trabajando...