¡Utilice Python para leer y escribir datos de Excel!

En comparación con otros lenguajes de programación, todos sabemos que la mayor ventaja de Python es su código simple y sus ricas bibliotecas de código abierto de terceros para que las utilicen los desarrolladores. Con la popularidad del análisis de datos en los últimos años, Python también se ha convertido en uno de los lenguajes de programación más populares. En cuanto a leer y almacenar datos, para la gente común, además de las bases de datos, la más común es Microsoft Excel.
Insertar descripción de la imagen aquí

1. Preparación

1.1 Primera introducción a Excel

Microsoft Excel es un software de hoja de cálculo escrito por Microsoft para computadoras que utilizan los sistemas operativos Windows y Apple Macintosh.

1.2 Diferencias de formatos

Existen dos formatos, xls y xlsx, en Excel, la diferencia entre ellos es:

  • Los formatos de archivo son diferentes. xls es un formato binario único. Su estructura central es una estructura de tipo de documento compuesto, mientras que la estructura central de xlsx es una estructura de tipo XML. Utiliza compresión basada en XML para que ocupe menos espacio. Este es el significado de la última x en xlsx.
  • Las versiones son diferentes. xls es el formato de archivo generado por Excel2003 y versiones anteriores, y xlsx es el formato de archivo generado por Excel2007 y versiones posteriores.
  • La compatibilidad varía. El formato xlsx es compatible con versiones anteriores y es compatible con el formato xls.

1.3 Uso de bibliotecas

Entre los módulos que vienen con Python se encuentran los módulos xlrd y xlwt para formato xls, pero estas dos bibliotecas son solo para operaciones xls. Cuando queremos operar archivos en formato xlsx, necesitamos usar la biblioteca de terceros openpyxl.
Insertar descripción de la imagen aquí

1.4 Idea general

Al utilizar los módulos anteriores, teóricamente podemos operar completamente la lectura y escritura de Excel en diferentes formatos. Mucha gente está confundida, ¿cuál es el papel de este artículo? ¿No sería fantástico si estudiáramos los tres módulos correspondientes directamente?

La respuesta es: Aunque estas bibliotecas han convertido completamente los conceptos de archivos, tablas, filas y columnas de Excel en objetos en Python, cada operación requiere recorrer cada celda, y muchas veces incluso pasamos mucho tiempo. Al hacer bucles de celdas, esto en sí mismo es reinventar la rueda, así que pasé medio día resolviendo las siguientes seis funciones.

Insertar descripción de la imagen aquí

Visualización del segundo código

formato 2.1xlz

2.1.1 Leer archivo en 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 Escribir archivo en 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 Agregar para escribir un archivo en 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.2 xlsx

2.2.1 Leer archivo en 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 Escribir archivo en 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 Agregar para escribir un archivo en 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 artículo sea útil para aquellos que están aprendiendo Python!

por fin

¡Permítanme compartir con ustedes un conjunto completo de materiales de aprendizaje de Python, de forma gratuita! ¡gratis! ¡gratis! Los recopilé todos cuando estaba estudiando. No es fácil de organizar. Por favor, dale me gusta y compártelo ~

¡Escanee el código QR de certificación oficial de CSDN a continuación en WeChat para obtenerlo!

1. Rutas de aprendizaje en todas las direcciones de Python

La ruta omnidireccional de Python consiste en organizar los puntos técnicos de uso común de Python para formar un resumen de los puntos de conocimiento en varios campos. Su utilidad es que puede encontrar los recursos de aprendizaje correspondientes de acuerdo con los puntos de conocimiento anteriores para garantizar un aprendizaje más completo. .
Insertar descripción de la imagen aquí

2. Software de aprendizaje de Python

Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas. El software de desarrollo comúnmente utilizado para aprender Python está aquí, lo que les ahorra a todos mucho tiempo.
Insertar descripción de la imagen aquí

3. Video de aprendizaje introductorio de Python

Cuando miramos videos y aprendemos, no podemos simplemente mover los ojos y el cerebro, pero no las manos. El método de aprendizaje más científico es usarlos después de comprenderlos. En este momento, los proyectos prácticos son muy adecuados.
Insertar descripción de la imagen aquí

4. Ejercicios de Python

Consultar resultados de aprendizaje
Insertar descripción de la imagen aquí

5. Casos prácticos de Python

La teoría óptica es inútil, debes aprender a seguirla y practicarla para poder aplicar lo aprendido en la práctica, en este momento puedes aprender de algunos casos prácticos.
Insertar descripción de la imagen aquí

6. Materiales de entrevista de Python

Debemos aprender Python para encontrar un trabajo bien remunerado. Las siguientes preguntas de la entrevista son los materiales de entrevista más recientes de empresas de Internet de primer nivel como Alibaba, Tencent, Byte, etc., y los jefes de Alibaba han dado respuestas autorizadas. Después de terminar este conjunto Creo que todos pueden encontrar un trabajo satisfactorio según la información de la entrevista.
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
¡Los amigos que lo necesiten pueden escanear el código QR de certificación oficial de CSDN a continuación en WeChat para obtenerlo gratis ! !

Supongo que te gusta

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