Cómo utilizar Python para exportar grandes cantidades de datos a Excel

Tomado del producto es ligeramente Biblioteca  http://www.pinlue.com/article/2020/04/0210/1610100837708.html

(1) Descripción del problema: Para una mejor visualización de datos, formatos de archivo de Excel los datos son a menudo más ventajoso que un archivo de texto, pero adaptadas a la pitón, cómo exportar los datos a Excel que? Si usted choca con la necesidad de exportar grandes cantidades de datos y cómo funciona? En este trabajo, para resolver estos dos problemas.

PS Nota: Muchas personas aprenden proceso de Python se encontrará con una variedad de problemas de que preocuparse, nadie ayuda a contestar fácil darse por vencido. Por esta razón pequeñas series construyeron un pitón-pila completa libre de Q y una falda: menos de siete Yiyi nueve jugadas de Pakistán y cinco de conversión (homónimo digital) se pueden encontrar, pero no los conductores de edad avanzada tienen problemas que resolver, también es el más reciente proyecto Tutorial de Python puede juntarse entre sí ,, supervisar el progreso juntos!

(2) los pasos siguientes:

1. El primer paso, el openpyxl instalación,

Uso pip de instalación puede openpyxl, pero instalado en las ventanas versión es 2.2.6, pero CentOS versión 4.1 se instala automáticamente,

El código escrito para ejecutarse en ventanas ningún problema, pero en CentOS se estaba dando, por ejemplo ew = ExcelWriter (libro = wb) al menos un argumento, tan decisivo 2.2.6 versión en mi servidor 237 instalado, el problema está resuelto.

pip instalar openpyxl == 2.2.6

2. El segundo paso, ja, ja, no hay amigos, no hablar sin sentido, directamente sobre el código, ps, implementar código contiene dos versiones de xlwt y openpyxl.

(3) Otras lecturas: a través del acceso a la información en línea, encontrar opiniones que se resumen en los siguientes puntos:

pitón Excel lib módulo relacionados con la operación tiene dos grupos se XLRD, xlwt, xlutils, otro grupo es openpyxl,

Pero el primer grupo (XLRD, xlwt) mayor, que sólo puede ser manejado por Excel 97-2003 o Excel 97 versiones anteriores formato generado archivo de Excel xls, xlwt ni siquiera admite una versión posterior del archivo de Excel 07, Excel este formato en general la máxima sólo puede soportar 256 o Excel 65.536 líneas.

Por lo que la cara de grandes cantidades de datos necesitan ser exportado a sobresalir el caso, tendrá las siguientes tres opciones, 1) se almacena en un formato diferente, como guardar como un archivo CSV 2) Uso openpyxl-, debido a su apoyo a Excel xlsx formato 2007+ / xlsm procesamiento 3) Win32 COM (sólo Windows)

Por supuesto, tenemos que hacer frente a las dificultades, a fin de mejorar los productos de visualización y datos a los usuarios, que siguen optando por la segunda.

ps, mucha suerte, después de buscar que se encuentran openpyxl, soporte Excel 07+ y tener a alguien en el mantenimiento, la documentación legible, refiriéndose Tutorial y la documentación de la API pronto será capaz de empezar a trabajar, eso es todo -

[20180713 complemento ps, el siguiente código __version__ openpyxl = '2.2.6' y openpyxl de __version__ = '2.4.8' pases de prueba, teniendo en cuenta la última versión openpyxl es __version__ = '2.5.4', Para la última versión del ejemplo de operación de pitón Excel

(4) Sin más, directamente sobre el código, consulte

# Codificación: UTF-8

'''

# Queremos ayudar Ja, yo le gustaría hacer preguntas

crear por yaoyz

Fecha: 01/24/2017

'''

importxlrd

importxlwt

Libro de trabajo relacionados #

fromopenpyxl.workbookimportWorkbook

# ExcelWriter, un paquete muy fuerte de escritura funciones de Excel

fromopenpyxl.writer.excelimportExcelWriter

# Eggache una columna de números en letras método

fromopenpyxl.utilsimportget_column_letter

fromopenpyxl.reader.excelimportload_workbook

classHandleExcel ():

'' 'Excel relacionada con la clase de operación' ''

def__init __ (self):

uno mismo. head_row_labels = [u 'estudiantes' ID 'U 'nombres de los estudiantes', u' Contacto 'u' conocimiento ID 'u' Nombre del conocimiento ']

"""

función:

Lea cada registro en el archivo txt, guardarlo en la lista

param:

Nombre del archivo: el nombre del archivo para ser leído

Regreso:

Lista de registros devueltos: res_list

"""

defread_from_file (self, nombre de archivo):

res_list = []

file_obj = abierto (nombre de archivo, "r")

forlineinfile_obj.readlines ():

res_list.append (línea)

file_obj.close ()

returnres_list

"""

función:

Leer cada registro de la * .xlsx, salvo que a cambio data_dic

param:

excel_name: Para leer el nombre del archivo

Regreso:

dict registros devueltos: data_dic

"""

defread_excel_with_openpyxl (self, excel_name = "testexcel2007.xlsx"):

# Archivos de lectura Excel2007

wb = load_workbook (filename = excel_name)

# Mostrar cuántas mesas

imprimir "Hoja de trabajo de gama (s):", wb.get_named_ranges ()

imprimir "nombre de la hoja (s):", wb.get_sheet_names ()

# Tome la primera tabla

sheetnames = wb.get_sheet_names ()

ws = wb.get_sheet_by_name (sheetnames [0])

# Muestra el número de nombres de tabla, las filas de la tabla, las columnas de tabla

imprimir "Hoja de Trabajo TITILE:", ws.title

imprimir "Filas Hoja de Trabajo:", ws.get_highest_row ()

imprimir "Cols Hoja de Trabajo:", ws.get_highest_column ()

# Consigue una hoja de cálculo Excel leer el número de filas, el número de columnas

núm_fila = ws.get_highest_row ()

col_num = ws.get_highest_column ()

imprimir "row_num:", row_num "col_num:", col_num

# Establecido para almacenar datos diccionario

= Data_dic {}

firmar = 1

# Los datos almacenados en el diccionario

forrowinws.rows:

temp_list = []

# Impresión "fila", fila

forcellinrow:

printcell.value,

temp_list.append (Celda.Value)

impresión""

data_dic [signo] = temp_list

firmar + = 1

printdata_dic

returndata_dic

"""

función:

Leer cada registro de la * .xlsx, salvo que a cambio data_dic

param:

registros: se salven, una lista que contiene cada registro

save_excel_name: Guardar como nombre de archivo

head_row_stu_arrive_star:

Regreso:

dict registros devueltos: data_dic

"""

defwrite_to_excel_with_openpyxl (self, registros, head_row, save_excel_name = "save.xlsx"):

# Crear un nuevo libro

wb = Workbook ()

# Crear un excelWriter

ew = ExcelWriter (libro de trabajo = wb)

# Establecer la ruta de salida y el nombre del archivo

dest_filename = save_excel_name.decode ( 'utf-8')

# La primera hoja es ws

ws = wb.worksheets [0]

# Establecer el nombre de WS

ws.title = "nombres de rango"

# Escribe la primera fila, la fila de encabezado

forh_xinrange (1, Condado (head_row) 1):

h_col = get_column_letter (h_x)

#print h_col

ws.cell ( '% s% s' % (h_col, 1)). value = '% s' % (head_row [h_x-1])

# Escribir esas líneas de la segunda línea y más allá

i = 2

forrecordinrecords:

record_list = str (registro) .strip (). split ( "\ t")

forxinrange (1, Len (record_list) +1):

col = get_column_letter (x)

ws.cell ( '% s% s' % (col, i)). value = '% s' % (record_list [x-1] .decode ( 'utf-8'))

i + = 1

# Escribir archivo

ew.save (filename = dest_filename)

"""

función:

salida de prueba el contenido de Excel

Leer archivos de Excel

param:

excel_name: Para leer el nombre de archivo de Excel

Regreso:

no

"""

defread_excel (self, excel_name):

libro = xlrd.open_workbook (excel_name)

printworkbook.sheet_names ()

# Obtener toda la hoja

printworkbook.sheet_names () # [u'sheet1' , u'sheet2' ]

sheet2_name = workbook.sheet_names () [1]

# Hoja de acuerdo con contenido de láminas adquirir o nombre de índice

Hoja2 = workbook.sheet_by_index (1) índice de # hoja empieza desde 0

Hoja2 = workbook.sheet_by_name ( 'Sheet1')

# Nombre de la hoja, el número de filas, columnas

printsheet2.name, sheet2.nrows, sheet2.ncols

# Obtener filas y columnas enteras de valores (array)

rows = sheet2.row_values ​​(3) # Obtener el cuarto contenido line

cols = sheet2.col_values ​​(2) # adquiere contenido tercera columna

printrows

printcols

# La obtención de contenido de la celda

printsheet2.cell (1,0) .value

printsheet2.cell_value (1,0)

printsheet2.row (1) [0] .value

# Desarrollo de los tipos de datos de los contenidos de la celda

printsheet2.cell (1,0) .ctype

# Obtenido por Nombre

returnworkbook.sheet_by_name (u'Sheet1' )

"""

función:

estilo de celda conjunto

param:

Nombre: el nombre de la fuente

altura: altura de la fuente

negrita: Capitalización

Regreso:

estilo: Formato de respaldo conjunto de objetos

"""

defset_style (sí, el nombre, la altura, negrita = False):

style = xlwt.XFStyle) estilo (# initialize

font = xlwt.Font () # Crear un estilo de fuente

font.name = # nombre del 'Times New Roman'

Font.BOLD = negrita

font.color_index = 4

font.height = altura

fronteras = xlwt.Borders ()

borders.left = 6

borders.right = 6

borders.top = 6

borders.bottom = 6

style.font = fuente

style.borders = fronteras

returnstyle

"""

función:

estilos de celda de acuerdo con la configuración modificada a partir del resultado del cálculo se almacena como un txt Excel

param:

conjunto de datos: Para guardar los datos de los resultados, el almacenamiento lista

Regreso:

Guardar los resultados en objeto de Excel

"""

defwrite_to_excel (sí, el conjunto de datos, save_excel_name, head_row):

f = xlwt.Workbook () # crear un libro

# Creación de la primera hoja:

# sheet1

count = 1

sheet1 = f.add_sheet (u'sheet1' , cell_overwrite_ok = true) # 创建 hoja

# La primera línea del título:

forpinrange (LEN (head_row)):

sheet1.write (0, p, head_row [p], self.set_style ( 'Times New Roman', 250, True))

por defecto = self.set_style ( 'Times New Roman', 200, false) # definir el estilo fuera del bucle trabajo voluntad

forlineindataset:

row_list = str (línea) .strip ( "\ n"). split ( "\ t")

forppinrange (. len (str (línea) .strip ( "\ n") split ( "\ t"))):

sheet1.write (recuento, pp, row_list [pp] .decode ( 'utf-8'), por defecto)

contar + = 1

f.save (save_excel_name) # Guardar el archivo

defrun_main_save_to_excel_with_openpyxl (self):

imprimir "lectura de la prueba y escribir archivo de Excel 2007 y más allá xlsx, para facilitar más datos escritos en el archivo"

imprimir "1. archivo txt se lee en la memoria para almacenar un objeto de lista"

dataset_list = self.read_from_file ( "test_excel.txt")

'' 'Openpyxl uso de pruebas para manejar Excel 2007' ''

imprimir "2. Para escribir el archivo en una hoja de cálculo de Excel."

head_row_label = self.head_row_labels

save_name = "test_openpyxl.xlsx"

self.write_to_excel_with_openpyxl (dataset_list, head_row_label, save_name)

imprimir "3. haya terminado, guarde el archivo de Excel formato de archivo txt para la tarea."

defrun_main_save_to_excel_with_xlwt (self):

imprimir "4. archivo txt se lee en la memoria para almacenar un objeto de lista"

dataset_list = self.read_from_file ( "test_excel.txt")

'' 'Xlwt uso de pruebas para manejar Excel 97-2003' ''

imprimir "5. El archivo se escribe en una hoja de cálculo de Excel."

head_row_label = self.head_row_labels

save_name = "test_xlwt.xls"

self.write_to_excel_with_openpyxl (dataset_list, head_row_label, save_name)

imprimir "6. haya terminado, guarde el archivo de Excel formato de archivo txt para la tarea."

if__name__ == '__ main__':

imprimir "crear mango objeto de Excel"

obj_handle_excel = HandleExcel ()

# Openpyxl se utiliza para escribir datos en un archivo y xlwt

obj_handle_excel.run_main_save_to_excel_with_openpyxl ()

obj_handle_excel.run_main_save_to_excel_with_xlwt ()

'' 'Xls nota openpyxl archivo de lectura de prueba no puede ser leída, al archivo de formato xlsx XLRD puede no ser leído' ''

# Obj_handle_excel.read_excel_with_openpyxl ( "testexcel2003.xls") # 错误 写法

# Obj_handle_excel.read_excel_with_openpyxl ( "testexcel2003.xls") # 错误 写法

obj_handle_excel.read_excel ( "testexcel2003.xls")

obj_handle_excel.read_excel_with_openpyxl ( "testexcel2007.xlsx")

Esos son los momentos que compartir, comprender al respecto?

 

Publicado 60 artículos originales · ganado elogios 58 · Vistas de 140.000 +

Supongo que te gusta

Origin blog.csdn.net/yihuliunian/article/details/105310605
Recomendado
Clasificación