Foros del Web » Soporte técnico » Ofimática »

Pasar de xls a xml

Estas en el tema de Pasar de xls a xml en el foro de Ofimática en Foros del Web. Alguien conoce alguna macro que me permita convertir un xls a xml, o algun ejemplo......
  #1 (permalink)  
Antiguo 07/02/2009, 12:16
 
Fecha de Ingreso: noviembre-2003
Mensajes: 403
Antigüedad: 20 años, 5 meses
Puntos: 4
Pasar de xls a xml

Alguien conoce alguna macro que me permita convertir un xls a xml, o algun ejemplo...
  #2 (permalink)  
Antiguo 09/02/2009, 06:22
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Respuesta: Pasar de xls a xml

¿No te sirve un: Archivo ---> Guardar como ---> y seleciconar la opción de guardar en formato xml?.

Si lo haces con macros (usa la grabadora de macros), recuerda que el fichero xml que te genere, no contendrá ni una sola línea de código VBA, pues ya no será un fichero de excel.
  #3 (permalink)  
Antiguo 09/02/2009, 20:45
 
Fecha de Ingreso: noviembre-2003
Mensajes: 403
Antigüedad: 20 años, 5 meses
Puntos: 4
Respuesta: Pasar de xls a xml

El problema de usar el guardar como de excel, es que el codigo posee mucha basura... me gustaria hacerlo yo mismo... he pensando en una macro pero no tengo mucha idea de como hacerlo, y por mas que busco en google no consigo nada, agradeceria cualqueir ayuda...
  #4 (permalink)  
Antiguo 10/02/2009, 03:31
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Respuesta: Pasar de xls a xml

Si buscas en google como hacer macros en excel, el primer resultado que veas, es mi blog (esto es para no hacer spam, poniendo aquí un link a mi blog). Allí explico como hacer macros de una forma muy sencilla, y para no iniciados.

No obstante, si no quieres trabajar mucho, el código que obtendrás, pasando de xls a xlm, será algo así:
Código:
Sub Guardar_como_xml()
'Ruta donde guardaremos el fichero
'(esto es un ejemplo, así que lo guardaré en la unidad F, que es mi llave USB
'dentro de una carpeta llamada Excel)
ruta = "F:\Excel"
'Nombre que le vamos a poner al fichero
fichero = "pepito grillo.xml"
'omitiremos los avisos de excel (que si desea sobreescribir, que si tal, que si cual...)
Application.DisplayAlerts = False
'Creamos el archivo xml
ActiveWorkbook.SaveAs Filename:=ruta & "\" & fichero, FileFormat:=xlXMLSpreadsheet
End Sub
Eso sí, creo que te vas a encontrar un poco de basurilla en el fichero xml, así que no te quedará otra opción que editar ese fichero a pelo para quitar esas cosillas que sobran.

Salu2
  #5 (permalink)  
Antiguo 10/02/2009, 22:00
 
Fecha de Ingreso: noviembre-2003
Mensajes: 403
Antigüedad: 20 años, 5 meses
Puntos: 4
Respuesta: Pasar de xls a xml

Presisamente el metodo de importacion de excel es demasiado ineficiente, mucho codigo basura queda en mi documento, pues por eso he estado pensando en lo de la macro para crearlo... y bueno logre lleagr a esta solucion

y coloco la macro para que le sea algo util a otras personas, quizas el codigo pueda mejorarse... es la primera prueba

Código:
Sub toXML()
Dim strNombreArchivo, strRuta, strArchivoTexto As String
Dim f As Integer
strNombreArchivo = "mixml.xml"
strRuta = "C:\"
strArchivoTexto = strRuta & strNombreArchivo

'abrimos el archivo para escribir
f = FreeFile
Open strArchivoTexto For Output As #f

'Encabezado del Archivo
Print #f, "<?xml version='1.0' encoding='UTF-8'?>"

'escribimos al archivo
Print #f, "<categoria>"
    Nombre = ActiveSheet.Name
    Set X = Worksheets(Nombre)
    With X
        Fila = Range("A65000").End(xlUp).Row
        For I = 1 To Fila
            If Trim(Range("A" & I).Value) = "tema" Then
                temaid = Trim(Range("H" & I).Value)
            End If
            If Range("D" & I).Value <> "" And Range("F" & I).Value <> "" And Trim(Range("G" & I).Value) <> "***" Then
                Print #f, "<usuario>"
                Print #f, "<codigo>" & Cliente_cod & "</codigo>"
                Print #f, "<documento>" & Trim(.Range("E" & I).Value) & "</documento>"
                Print #f, "<fecha>" & Range("M" & I).Value & "</fecha>"
                Print #f, "<vencimiento>" & Range("N" & I).Value & "</vencimiento>"
                Print #f, "<nick>" & Range("O" & I).Value & "</nick>"
                Print #f, "</usuario>"
            End If
        Next I
    End With

'Footer del Archivo
Print #f, "</categoria>"

'cerramos el archivo de texto
Close f
End Sub
  #6 (permalink)  
Antiguo 11/02/2009, 02:15
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Respuesta: Pasar de xls a xml

Ese macro que has puesto, es la mejor opción, siempre y cuando la estructura de tu hoja de excel sea esa, es decir, siempre que tengas una columna con el vencimiento, el código, el documento, la fecha, etc.

Yo pensaba que querías algo más genérico, y utilizable para cualquier hoja de excel.

Salu2
  #7 (permalink)  
Antiguo 08/06/2010, 10:05
 
Fecha de Ingreso: diciembre-2007
Mensajes: 3
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Pasar de xls a xml

Hola
este ejemplo me ha venido de maravilla, solo que el xml que me genera no reconoce nuestros "santos" caracteres, es decir, acentos, "ñ's"... ¿alguien sabe como codificarlo? se supone que con el UTF-8 valdria, pero resulta que no...

gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:35.