ordenar modificar manipular manejo graficar exportar datos crear como archivos archivo python excel csv xlrd xlwt

modificar - manipular csv python



python: creando un libro de Excel y volcando archivos csv como hojas de trabajo (6)

Encontrarás todo lo que necesitas en este tutorial xlwt . Estas bibliotecas ( xlrd y xlwt ) son las opciones más populares para administrar la interacción de Excel en Python. El inconveniente es que, en este momento, solo admiten el formato binario de Excel (.xls).

Tengo pocos archivos csv que me gustaría volcar como nuevas hojas de trabajo en un libro de Excel (xls / xlsx). ¿Cómo logro esto?

Busqué en Google y encontré ''pyXLwriter'' pero parece que el proyecto se detuvo. Mientras estoy probando ''pyXLwriter'' me gustaría saber si hay alternativas / sugerencias / módulos.

Muchas gracias.

[Editar]

Aquí está mi solución: (¿alguien tiene una solución mucho más ágil, mucho más pitón? Comente. Gracias)

import glob import csv import xlwt import os wb = xlwt.Workbook() for filename in glob.glob("c:/xxx/*.csv"): (f_path, f_name) = os.path.split(filename) (f_short_name, f_extension) = os.path.splitext(f_name) ws = wb.add_sheet(str(f_short_name)) spamReader = csv.reader(open(filename, ''rb''), delimiter='','',quotechar=''"'') row_count = 0 for row in spamReader: for col in range(len(row)): ws.write(row_count,col,row[col]) row_count +=1 wb.save("c:/xxx/compiled.xls") print "Done"


Esto se basa en la respuesta a su propia respuesta. Pero la razón por la que estoy usando xlsxwriter es porque acepta más datos en formato xlsx. Donde como xlwt te limita a 65556 filas y formato xls.

import xlsxwriter import glob import csv workbook = xlsxwriter.Workbook(''compiled.xlsx'') for filename in glob.glob("*.csv"): ws = workbook.add_worksheet(str(filename.split(''.'')[0])) spamReader = csv.reader(open(filename, ''rb''), delimiter='','',quotechar=''"'') row_count = 0 print filename for row in spamReader: for col in range(len(row)): ws.write(row_count,col,row[col]) row_count +=1 workbook.close()


No estoy seguro de lo que quieres decir con "mucho más delgado, mucho más pitón", pero ciertamente podrías mejorarlo un poco:

import glob, csv, xlwt, os wb = xlwt.Workbook() for filename in glob.glob("c:/xxx/*.csv"): (f_path, f_name) = os.path.split(filename) (f_short_name, f_extension) = os.path.splitext(f_name) ws = wb.add_sheet(f_short_name) spamReader = csv.reader(open(filename, ''rb'')) for rowx, row in enumerate(spamReader): for colx, value in enumerate(row): ws.write(rowx, colx, value) wb.save("c:/xxx/compiled.xls")


Siempre escribo el formato XML de Office 2003 a través de cadenas. Es bastante fácil de hacer y mucho más fácil de administrar que escribir y comprimir lo que constituye un documento xlsx. Tampoco requiere ninguna biblioteca externa. (aunque uno podría rodar fácilmente el suyo)

Además, Excel admite la carga de archivos CSV. Ambos delimitados por espacios o caracteres. Puede cargarlo directamente o intentar copiarlo y pegarlo, luego presione el botón Texto a columnas en las opciones. Esta opción no tiene nada que ver con Python, por supuesto.


También disponible en GitHub repo "Kampfmitexcel" ...

import csv, xlwt, os def input_from_user(prompt): return raw_input(prompt).strip() def make_an_excel_file_from_all_the_txtfiles_in_the_following_directory(directory): wb = xlwt.Workbook() for filename in os.listdir(data_folder_path): if filename.endswith(".csv") or filename.endswith(".txt"): ws = wb.add_sheet(os.path.splitext(filename)[0]) with open(''{}//{}''.format(data_folder_path,filename),''rb'') as csvfile: reader = csv.reader(csvfile, delimiter='','') for rowx, row in enumerate(reader): for colx, value in enumerate(row): ws.write(rowx, colx, value) return wb if __name__ == ''__main__'': path_to_data = input_from_user("Where is the data stored?: ") xls = make_an_excel_file_from_all_the_txtfiles_in_the_following_directory(path_to_data) xls_name = input_from_user(''What do you want to name the excel file?: '') xls.save(''{}//{}{}''.format(data_folder_path,xls_name,''.xls'')) print "Your file has been saved in the data folder."


Use xlsxwriter para crear y escribir en un archivo excel en python.

Instalarlo por: pip instalar xlsxwriter

import xlsxwriter # Create an new Excel file and add a worksheet. workbook = xlsxwriter.Workbook(''demo.xlsx'') worksheet = workbook.add_worksheet() # Widen the first column to make the text clearer. worksheet.set_column(''A:A'', 20) # Add a bold format to use to highlight cells. bold = workbook.add_format({''bold'': True}) # Write some simple text. worksheet.write(''A1'', ''Hello'') # Text with formatting. worksheet.write(''A2'', ''World'', bold) # Write some numbers, with row/column notation. worksheet.write(2, 0, 123) worksheet.write(3, 0, 123.456) # Insert an image. worksheet.insert_image(''B5'', ''logo.png'') workbook.close()