Como usar python para exportar grandes quantidades de dados para o Excel

Reproduzido a partir do produto é ligeiramente Biblioteca  http://www.pinlue.com/article/2020/04/0210/1610100837708.html

(1) Descrição do problema: Para melhores dados de exibição, formatos de arquivo de dados do Excel são muitas vezes mais vantajoso do que um arquivo de texto, mas específico para o python, como exportar dados para o Excel é? Se você acertar uma necessidade de exportar grandes quantidades de dados e como ele funciona? Neste trabalho, para resolver estes dois problemas.

PS Nota: Muitas pessoas aprendem processo Python vai encontrar uma variedade de problemas com que se preocupar, ninguém para ajuda respondendo fácil desistir. Por esta razão pequenas séries construiu um Q livre Python full-stack e uma saia: menos de sete Yiyi nove peças do Paquistão e cinco de conversão (homônimo digital) podem ser encontrados, mas não os motoristas mais velhos têm problemas para resolver, há também o mais recente projecto Tutorial Python você pode obter em conjunto um com o outro ,, supervisionar o progresso juntos!

(2) os seguintes passos:

1. O primeiro passo, o openpyxl instalação,

Use pip instalar lata openpyxl, mas instalado nas janelas versão é 2.2.6, mas centos versão 4.1 é instalado automaticamente,

O código escrito para ser executado sob janelas nenhum problema, mas em centos estava sendo dada, dizer ew = ExcelWriter (pasta de trabalho = BM) pelo menos um argumento, de modo decisivo 2.2.6 versão no meu servidor 237 instalado, o problema está resolvido.

pip instalar openpyxl == 2.2.6

2. O segundo passo, ha ha, não tem amigos, não fale bobagem, diretamente no código, ps, implementar o código contém duas versões do xlwt e openpyxl.

(3) Leitura adicional: através do acesso à informação encontrada opiniões online, resumidas nos seguintes pontos:

pitão Excel módulo relacionada operação lib tem dois grupos é xlrd, xlwt, xlutils, um outro grupo é openpyxl,

Mas o ex-grupo (xlrd, xlwt) mais velha, só pode ser tratada por Excel 97-2003 ou Excel 97 versões anteriores formato gerado excel arquivo xls, xlwt nem mesmo apoiar uma versão posterior do arquivo 07 excel, excel este formato em geral a máxima pode suportar apenas 256 ou excel arquivos de 65536 linhas.

Então o rosto de grandes quantidades de dados precisam ser exportados para o Excel o caso, você terá as seguintes três opções, 1) é armazenado em um formato diferente, como salvar como um arquivo CSV 2) Use openpyxl-, por causa de seu suporte para Excel 2007+ xlsx / formato xlsm processamento 3) win32 COM (somente para Windows)

Claro, temos de enfrentar as dificuldades, a fim de melhores produtos de exibição e dados para usuários, nós ainda escolher o segundo.

ps, muita sorte, depois de algumas pesquisas eu encontrei openpyxl, suporte excel 07+ e ter alguém na manutenção, documentação legível, referindo Tutorial e documentação da API em breve será capaz de começar, é isso -

[20180713 add ps, o seguinte código __version__ openpyxl = '2.2.6' e openpyxl de __version__ = '2.4.8' passes de teste, tendo em conta a versão mais recente openpyxl é __version__ = '2.5.4', Para a última versão do exemplo de operação python excel

(4) Sem mais delongas, diretamente no código, consulte

# Coding: utf-8

'''

# Queremos ajudá-Ha, eu gostaria que ele para fazer perguntas

criar por yaoyz

Data: 2017/01/24

'''

importxlrd

importxlwt

# Livro relacionado

fromopenpyxl.workbookimportWorkbook

# ExcelWriter, um muito forte gravação pacote de funções do Excel

fromopenpyxl.writer.excelimportExcelWriter

# Eggache uma coluna de números em forma de letras

fromopenpyxl.utilsimportget_column_letter

fromopenpyxl.reader.excelimportload_workbook

classHandleExcel ():

'' 'Excel classe relacionada de operação' ''

def__init __ (self):

auto. head_row_labels = [u 'estudantes' ID 'u 'os nomes dos alunos', u' Contacto 'u' ID conhecimento 'u' nome de conhecimento ']

"""

função:

Leia cada registro no arquivo txt, guardá-lo na lista

param:

filename: o nome do arquivo a ser lido

Retorna:

lista de registros retornado: res_list

"""

defread_from_file (self, filename):

res_list = []

file_obj = aberta (nome de ficheiro, "r")

forlineinfile_obj.readlines ():

res_list.append (linha)

file_obj.close ()

returnres_list

"""

função:

Leia cada registro na * .xlsx, guardá-lo em troca data_dic

param:

excel_name: Para ler o nome do arquivo

Retorna:

dict registros retornados: data_dic

"""

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

# Leia Excel2007 arquivo

wb = load_workbook (nome = excel_name)

# Mostrar como muitas tabelas

imprimir "intervalo de planilha (s):", wb.get_named_ranges ()

imprimir "nome (s) Planilha:", wb.get_sheet_names ()

# Tome a primeira tabela

sheetnames = wb.get_sheet_names ()

ws = wb.get_sheet_by_name (sheetnames [0])

# Mostrar o número de nomes de tabelas, linhas de tabelas, colunas da tabela

imprimir "Folha Título do trabalho:", ws.title

imprimir "linhas folha de trabalho:", ws.get_highest_row ()

imprimir "Cols folha de trabalho:", ws.get_highest_column ()

# Conseguir ler planilha excel quantas linhas, o número de colunas

núm_linha = ws.get_highest_row ()

col_num = ws.get_highest_column ()

imprimir "núm_linha:", núm_linha "col_num:", col_num

# Estabelecida para guardar dicionário de dados

= {} Data_dic

assinar = 1

# Os dados armazenados no dicionário

forrowinws.rows:

temp_list = []

# Print "linha", linha

forcellinrow:

printcell.value,

temp_list.append (cell.value)

impressão""

data_dic [sinal] = temp_list

assinar + 1 =

printdata_dic

returndata_dic

"""

função:

Leia cada registro na * .xlsx, guardá-lo em troca data_dic

param:

registos: para ser salvo, uma lista contendo cada registro

save_excel_name: Guardar como nome do arquivo

head_row_stu_arrive_star:

Retorna:

dict registros retornados: data_dic

"""

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

# Criar um novo livro

wb = livro ()

# Criar um excelWriter

ew = ExcelWriter (livro = WB)

# Defina o caminho de saída e nome do arquivo

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

# A primeira folha é ws

ws = wb.worksheets [0]

# Defina o nome de ws

ws.title = "nomes de intervalo"

# Escreva a primeira linha, a linha de cabeçalho

forh_xinrange (1, County (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])

# Escrever essas linhas da segunda linha e além

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' % (coluna, i)). value = '% s' % (record_list [X-1] .decode ( 'utf-8'))

i + 1 =

# Arquivo Write

ew.save (nome = dest_filename)

"""

função:

saída de teste conteúdo Excel

arquivos Leia Excel

param:

excel_name: Para ler o nome do arquivo Excel

Retorna:

não

"""

defread_excel (self, excel_name):

livro = xlrd.open_workbook (excel_name)

printworkbook.sheet_names ()

# Obter todas as folhas

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

sheet2_name = workbook.sheet_names () [1]

# Folha de acordo com conteúdo de folha adquirir ou nome índice

sheet2 = workbook.sheet_by_index (1) índice # folha começa a partir de 0

sheet2 = workbook.sheet_by_name ( 'Folha1')

# Folha de nome, o número de linhas, colunas

printsheet2.name, sheet2.nrows, sheet2.ncols

# Obter linhas inteiras e colunas de valores (matriz)

linhas = sheet2.row_values ​​(3) # get a quarta conteúdo linha

cols = sheet2.col_values ​​(2) # adquire terceira coluna conteúdo

printrows

printcols

# Obtenção de conteúdo da célula

printsheet2.cell (1,0) .value

printsheet2.cell_value (1,0)

printsheet2.row (1) [0] .value

# Adquirir o tipo de dados do conteúdo da célula

printsheet2.cell (1,0) .ctype

# Obtido por Nome

returnworkbook.sheet_by_name (u'Sheet1' )

"""

função:

estilo de célula Set

param:

Nome: O nome da fonte

altura: altura da fonte

negrito: Capitalização

Retorna:

estilo: Back-set formato de objeto

"""

defset_style (self, nome, altura, negrito = False):

style = xlwt.XFStyle () # estilo initialize

font = xlwt.Font () # Cria um estilo de fonte

font.name = name # 'Times New Roman'

font.bold = negrito

font.color_index = 4

font.height = altura

fronteiras = xlwt.Borders ()

borders.left = 6

borders.right = 6

borders.top = 6

borders.bottom = 6

style.font = fonte

style.borders = fronteiras

returnstyle

"""

função:

estilos de células de acordo com as configurações alteradas a partir do resultado do cálculo é armazenado como um txt Excel

param:

conjunto de dados: Para salvar os dados do resultado, armazenamento lista

Retorna:

Salvar os resultados em excel objeto

"""

defwrite_to_excel (self, conjunto de dados, save_excel_name, head_row):

f = xlwt.Workbook () # Criar uma pasta de trabalho

# Criar a primeira folha:

# sheet1

Quantidade = 1

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

# A primeira linha do título:

forpinrange (LEN (head_row)):

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

default = self.set_style ( 'Times New Roman', 200, false) # define estilo o trabalho vontade de loop

forlineindataset:

row_list = str (linha) .strip ( "\ n"). divisão ( "\ t")

forppinrange (. len (str (linha) .strip ( "\ n") de divisão ( "\ t"))):

sheet1.write (contagem, pp, row_list [pp] .decode ( 'utf-8'), padrão)

count + 1 =

f.save (save_excel_name) # Salve o arquivo

defrun_main_save_to_excel_with_openpyxl (self):

imprimir "leitura do teste e escrever arquivo do Excel 2007 e para além xlsx, para facilitar mais dados gravados no arquivo"

imprimir "1. arquivo txt é lido na memória para armazenar um objeto de lista"

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

'' 'Uso teste openpyxl para lidar com o Excel 2007' ''

imprimir "2. para gravar o arquivo para uma planilha do 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. está terminado, salve o arquivo Excel formato de arquivo txt para a tarefa."

defrun_main_save_to_excel_with_xlwt (self):

imprimir "4. arquivo txt é lido na memória para armazenar um objeto de lista"

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

'' 'Uso teste xlwt para lidar com EXCEL 97-2003' ''

imprimir "5. O arquivo é gravado para uma planilha do 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. está terminado, salve o arquivo Excel formato de arquivo txt para a tarefa."

if__name__ == '__ main__':

imprimir "criar alça de objeto Excel"

obj_handle_excel = HandleExcel ()

# Openpyxl foram usadas para gravar dados em um arquivo e xlwt

obj_handle_excel.run_main_save_to_excel_with_openpyxl ()

obj_handle_excel.run_main_save_to_excel_with_xlwt ()

'' 'Arquivo xls nota openpyxl arquivo de leitura de teste não pode ser lido, a xlrd xlsx arquivo de formato não pode ser lido' ''

# 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")

Aqueles são os tempos para compartilhar, entender sobre isso?

 

Publicado 60 artigos originais · ganhou elogios 58 · Exibições 140.000 +

Acho que você gosta

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