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?