Python - Csv a Xlsx

 
Vista:

Csv a Xlsx

Publicado por Carlos Vladimir Jines Chuquillanqui (8 intervenciones) el 18/06/2019 19:42:55
Hola,

Pude convertir mi archivo .csv a .xlsx, pero al momento de abrir, las columnas que estaban en numeros se convirtieron en texto, ayuda por favor.Este es el codigo que use para convertir.Gracias de antemano.

1
2
3
4
5
6
7
8
9
10
11
import csv
import openpyxl
 
wb = openpyxl.Workbook()
ws = wb.active
 
with open('Oportunidadesv2.csv',encoding = 'utf8', errors = 'ignore' ) as f:
    reader = csv.reader(f, delimiter=';')
    for row in reader:
        ws.append(row)
wb.save('Oportunidadesv2.xlsx')
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jaime
Val: 526
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Csv a Xlsx

Publicado por Jaime (136 intervenciones) el 18/06/2019 20:02:32
Como te dije en el otro hilo del foro, como no tengo un archivo csv para probar, el código iba a generar ese tipo de problemas.
La posible solución que te doy es que ingreses cada dato en el método append()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import csv
import openpyxl
 
wb = openpyxl.Workbook()
ws = wb.active
 
with open('Oportunidadesv2.csv',encoding = 'utf8', errors = 'ignore' ) as f:
   reader = csv.reader(f, delimiter=';')
   for row in reader:
      #Esto es un ejemplo de como me imagino el funcionamiento de la variable row
      #Reemplace dentro de los corchetes por el nombre de la columna y agregue todas las columnas que tenga el archivo csv.
      fila=[row['_nombrecolumna'] , int(row['columnaNum])]
      ws.append(fila)
      wb.save('Oportunidadesv2.xlsx')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Csv a Xlsx

Publicado por Carlos Vladimir Jines Chuquillanqui (8 intervenciones) el 18/06/2019 22:35:50
Entonces tengo que ingresar los valores por cada columna?, tengo como 9 columnas cada columna con 300 filas con contenido que se paso de numero a letra cuando lo convertí. Quisiera tambien que el nombre de la hoja no sea 'Sheet' sino que sea el mismo nombre del archivo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jaime
Val: 526
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Csv a Xlsx

Publicado por Jaime (136 intervenciones) el 18/06/2019 22:51:42
No me entendiste, básicamente las filas (repito, porque no tengo archivo para probar) funcionan como array (mas no lo es):
Array:
variable[indicador]=valor
Como me imagino que funciona cvs:
row[nombre_Columna]= valor (ya sea string o numerica); ejemplo: row["valor"]=variable

Para nombrar hojas usa la siguiente propiedad:
ws.title="Mi_nombre"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar