Use Python para ler e escrever dados do Excel!

Em comparação com outras linguagens de programação, todos sabemos que a maior vantagem do Python é seu código simples e ricas bibliotecas de código aberto de terceiros para uso dos desenvolvedores. Com a popularidade da análise de dados nos últimos anos, Python também se tornou uma das linguagens de programação mais populares. Quanto à leitura e armazenamento de dados, para o cidadão comum, além dos bancos de dados, o mais comum é o Microsoft Excel.
Insira a descrição da imagem aqui

1. Preparação

1.1 Primeira introdução ao Excel

Microsoft Excel é um software de planilha desenvolvido pela Microsoft para computadores que usam os sistemas operacionais Windows e Apple Macintosh.

1.2 Diferenças de formatos

Existem dois formatos, xls e xlsx, no Excel. A diferença entre eles é:

  • Os formatos de arquivo são diferentes. xls é um formato binário exclusivo. Sua estrutura principal é uma estrutura de tipo de documento composto, enquanto a estrutura principal de xlsx é uma estrutura de tipo XML. Ele usa compactação baseada em XML para ocupar menos espaço. Este é o significado do último x em xlsx.
  • As versões são diferentes. xls é o formato de arquivo gerado pelo Excel2003 e versões anteriores, e xlsx é o formato de arquivo gerado pelo Excel2007 e versões posteriores.
  • A compatibilidade varia. O formato xlsx é compatível com versões anteriores e compatível com o formato xls.

1.3 Uso de bibliotecas

Entre os módulos que acompanham o Python estão os módulos xlrd e xlwt para o formato xls, mas essas duas bibliotecas são apenas para operações xls.Quando quisermos operar arquivos no formato xlsx, precisamos usar a biblioteca de terceiros openpyxl.
Insira a descrição da imagem aqui

1.4 Ideia geral

Ao utilizar os módulos acima, teoricamente podemos operar totalmente a leitura e escrita do Excel em diversos formatos.Muitas pessoas ficam confusas, qual é a função deste artigo? Não seria ótimo se estudássemos diretamente os três módulos correspondentes?

A resposta é: embora essas bibliotecas tenham convertido completamente os conceitos de arquivos, tabelas, linhas e colunas do Excel em objetos em Python, cada operação exige percorrer cada célula, e muitas vezes até gastamos muito tempo. fazer loop de células, isso por si só já é uma reinvenção da roda, então passei meio dia resolvendo as seis funções a seguir.

Insira a descrição da imagem aqui

Exibição do segundo código

Formato 2.1xlz

2.1.1 Ler arquivo no formato xls

def read_xls_excel(url,index):
    '''
    读取xls格式文件
    参数:
        url:文件路径
        index:工作表序号(第几个工作表,传入参数从1开始数)
    返回:
        data:表格中的数据
    '''
    # 打开指定的工作簿
    workbook = xlrd.open_workbook(url)
    # 获取工作簿中的所有表格
    sheets = workbook.sheet_names()
    # 获取工作簿中所有表格中的的第 index 个表格
    worksheet = workbook.sheet_by_name(sheets[index-1])
    # 定义列表存储表格数据
    data = []
    # 遍历每一行数据
    for i in range(0, worksheet.nrows):
        # 定义表格存储每一行数据
        da = []
        # 遍历每一列数据
        for j in range(0, worksheet.ncols):
            # 将行数据存储到da列表
            da.append(worksheet.cell_value(i, j))
        # 存储每一行数据
        data.append(da)
    # 返回数据
    return data

2.1.2 Gravar arquivo no formato xls

def write_xls_excel(url,sheet_name,two_dimensional_data):
  '''
    写入xls格式文件
    参数:
        url:文件路径
        sheet_name:表名
        two_dimensional_data:将要写入表格的数据(二维列表)
    '''
    # 创建工作簿对象
    workbook = xlwt.Workbook()
    # 创建工作表对象
    sheet = workbook.add_sheet(sheet_name)
    # 遍历每一行数据
    for i in range(0,len(two_dimensional_data)):
        # 遍历每一列数据
        for j in range(0,len(two_dimensional_data[i])):
            # 写入数据
            sheet.write(i,j,two_dimensional_data[i][j])
    # 保存
    workbook.save(url)
    print("写入成功")

2.1.3 Anexar para gravar arquivo no formato xls

def write_xls_excel_add(url, two_dimensional_data, index):
    '''
    追加写入xls格式文件
    参数:
        url:文件路径
        two_dimensional_data:将要写入表格的数据(二维列表)
        index:指定要追加的表的序号(第几个工作表,传入参数从1开始数)
    '''
    # 打开指定的工作簿
    workbook = xlrd.open_workbook(url)
    # 获取工作簿中的所有表格
    sheets = workbook.sheet_names()
    # 获取指定的表
    worksheet = workbook.sheet_by_name(sheets[index-1])
    # 获取表格中已存在的数据的行数
    rows_old = worksheet.nrows
    # 将xlrd对象拷贝转化为xlwt对象
    new_workbook = copy(workbook)
    # 获取转化后工作簿中的第index个表格
    new_worksheet = new_workbook.get_sheet(index-1)
    # 遍历每一行数据
    for i in range(0, len(two_dimensional_data)):
        # 遍历每一列数据
        for j in range(0, len(two_dimensional_data[i])):
            # 追加写入数据,注意是从i+rows_old行开始写入
            new_worksheet.write(i+rows_old, j, two_dimensional_data[i][j])
    # 保存工作簿
    new_workbook.save(url)
    print("追加写入成功")

Formato 2.2xlsx

2.2.1 Ler arquivo no formato xlsx

def read_xlsx_excel(url, sheet_name):
    '''
    读取xlsx格式文件
    参数:
        url:文件路径
        sheet_name:表名
    返回:
        data:表格中的数据
    '''
    # 使用openpyxl加载指定路径的Excel文件并得到对应的workbook对象
    workbook = openpyxl.load_workbook(url)
    # 根据指定表名获取表格并得到对应的sheet对象
    sheet = workbook[sheet_name]
    # 定义列表存储表格数据
    data = []
    # 遍历表格的每一行
    for row in sheet.rows:
        # 定义表格存储每一行数据
        da = []
        # 从每一行中遍历每一个单元格
        for cell in row:
            # 将行数据存储到da列表
            da.append(cell.value)
        # 存储每一行数据
        data.append(da)
    # 返回数据
    return data

2.2.2 Gravar arquivo no formato xlsx

def write_xlsx_excel(url, sheet_name, two_dimensional_data):
    '''
    写入xlsx格式文件
    参数:
        url:文件路径
        sheet_name:表名
        two_dimensional_data:将要写入表格的数据(二维列表)
    '''
    # 创建工作簿对象
    workbook = openpyxl.Workbook()
    # 创建工作表对象
    sheet = workbook.active
    # 设置该工作表的名字
    sheet.title = sheet_name
    # 遍历表格的每一行
    for i in range(0, len(two_dimensional_data)):
        # 遍历表格的每一列
        for j in range(0, len(two_dimensional_data[i])):
            # 写入数据(注意openpyxl的行和列是从1开始的,和我们平时的认知是一样的)
            sheet.cell(row=i + 1, column=j + 1, value=str(two_dimensional_data[i][j]))
    # 保存到指定位置
    workbook.save(url)
    print("写入成功")

2.2.3 Anexar para gravar arquivo no formato xlsx

def write_xlsx_excel_add(url, sheet_name, two_dimensional_data):
    '''
    追加写入xlsx格式文件
    参数:
        url:文件路径
        sheet_name:表名
        two_dimensional_data:将要写入表格的数据(二维列表)
    '''
    # 使用openpyxl加载指定路径的Excel文件并得到对应的workbook对象
    workbook = openpyxl.load_workbook(url)
    # 根据指定表名获取表格并得到对应的sheet对象
    sheet = workbook[sheet_name]
    for tdd in two_dimensional_data:
        sheet.append(tdd)
    # 保存到指定位置
    workbook.save(url)
    print("追加写入成功")

Espero que este artigo seja útil para você que está aprendendo Python!

afinal

Deixe-me compartilhar com você um conjunto completo de materiais de aprendizagem Python, gratuitamente! livre! livre! Eu compilei todos eles quando estava estudando. Não é fácil de organizar. Por favor, curtam e compartilhem~

Digitalize o código QR de certificação oficial da CSDN abaixo no WeChat para obtê-lo!

1. Rotas de aprendizagem em todas as direções do Python

A rota completa do Python é organizar os pontos técnicos comumente usados ​​​​do Python para formar um resumo dos pontos de conhecimento em vários campos.Sua utilidade é que você pode encontrar recursos de aprendizagem correspondentes de acordo com os pontos de conhecimento acima para garantir que você aprenda de forma mais abrangente .
Insira a descrição da imagem aqui

2. Software de aprendizagem Python

Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar as suas ferramentas. O software de desenvolvimento comumente usado para aprender Python está aqui, economizando muito tempo de todos.
Insira a descrição da imagem aqui

3. Vídeo introdutório de aprendizagem de Python

Quando assistimos a vídeos para aprender, não podemos apenas mover nossos olhos e cérebro, mas não nossas mãos. O método de aprendizagem mais científico é usá-los após a compreensão. Neste momento, projetos práticos são muito adequados.
Insira a descrição da imagem aqui

4. Exercícios de Python

Verifique os resultados da aprendizagem
Insira a descrição da imagem aqui

5. Casos práticos de Python

A teoria óptica é inútil. Você deve aprender a acompanhá-la e praticá-la para aplicar o que aprendeu na prática. Neste momento, você pode aprender com alguns casos práticos.
Insira a descrição da imagem aqui

6. Materiais de entrevista em Python

Devemos aprender Python para encontrar um emprego bem remunerado. As perguntas da entrevista a seguir são os materiais de entrevista mais recentes de empresas de Internet de primeira linha, como Alibaba, Tencent, Byte, etc., e os chefes do Alibaba deram respostas confiáveis. Depois de terminar este conjunto Acredito que todos podem encontrar um emprego satisfatório com base nas informações da entrevista.
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Amigos que precisarem podem escanear o código QR de certificação oficial da CSDN abaixo no WeChat para obtê-lo gratuitamente ! !

Acho que você gosta

Origin blog.csdn.net/maiya_yaya/article/details/131509384
Recomendado
Clasificación