Utilisez Python pour lire et écrire des données Excel !

Par rapport à d'autres langages de programmation, nous savons tous que le plus grand avantage de Python réside dans son code simple et ses riches bibliothèques open source tierces que les développeurs peuvent utiliser. Avec la popularité de l’analyse de données ces dernières années, Python est également devenu l’un des langages de programmation les plus populaires. Quant à la lecture et au stockage des données, pour les gens ordinaires, outre les bases de données, le plus courant est Microsoft Excel.
Insérer la description de l'image ici

1. Préparation

1.1 Première introduction à Excel

Microsoft Excel est un tableur écrit par Microsoft pour les ordinateurs utilisant les systèmes d'exploitation Windows et Apple Macintosh.

1.2 Différences de formats

Il existe deux formats, xls et xlsx, dans Excel. La différence entre eux est la suivante :

  • Les formats de fichiers sont différents. xls est un format binaire unique. Sa structure de base est une structure de type document composé, tandis que la structure de base de xlsx est une structure de type XML. Il utilise une compression basée sur XML pour prendre moins de place. C'est la signification du dernier x dans xlsx.
  • Les versions sont différentes. xls est le format de fichier généré par Excel2003 et les versions précédentes, et xlsx est le format de fichier généré par Excel2007 et les versions ultérieures.
  • La compatibilité varie. Le format xlsx est rétrocompatible et compatible avec le format xls.

1.3 Utilisation des bibliothèques

Parmi les modules fournis avec Python se trouvent les modules xlrd et xlwt pour le format xls, mais ces deux bibliothèques sont uniquement destinées aux opérations xls. Lorsque nous voulons exploiter des fichiers au format xlsx, nous devons utiliser la bibliothèque tierce openpyxl.
Insérer la description de l'image ici

1.4 Idée générale

En utilisant les modules ci-dessus, nous pouvons théoriquement exploiter pleinement la lecture et l'écriture d'Excel dans différents formats. Beaucoup de gens sont confus, quel est le rôle de cet article ? Ne serait-il pas formidable d’étudier directement les trois modules correspondants ?

La réponse est : bien que ces bibliothèques aient entièrement converti les concepts de fichiers, de tableaux, de lignes et de colonnes d’Excel en objets en Python, chaque opération nécessite de parcourir chaque cellule, et bien souvent nous passons même beaucoup de temps. boucler des cellules, cela en soi réinvente la roue, j'ai donc passé une demi-journée à trier les six fonctions suivantes.

Insérer la description de l'image ici

Affichage du deuxième code

Format 2.1xlz

2.1.1 Lire le fichier au format 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 Écrire un fichier au format 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 Ajouter pour écrire un fichier au format 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("追加写入成功")

2.2 Format XLSX

2.2.1 Lire le fichier au format 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 Écrire un fichier au format 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 Ajouter pour écrire un fichier au format 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("追加写入成功")

J'espère que cet article vous sera utile qui apprend Python !

enfin

Permettez-moi de partager avec vous un ensemble complet de matériel d'apprentissage Python, gratuitement ! gratuit! gratuit! Je les ai tous compilés quand j'étudiais. Ce n'est pas facile à organiser. Veuillez aimer et partager ~

Scannez le code QR de certification officielle CSDN ci-dessous sur WeChat pour l'obtenir !

1. Itinéraires d'apprentissage dans toutes les directions de Python

L'itinéraire Python toutes directions consiste à organiser les points techniques couramment utilisés de Python pour former un résumé des points de connaissances dans divers domaines.Son utilité est que vous pouvez trouver les ressources d'apprentissage correspondantes en fonction des points de connaissances ci-dessus pour vous assurer que vous apprenez de manière plus complète. .
Insérer la description de l'image ici

2. Logiciel d'apprentissage Python

Si un ouvrier veut bien faire son travail, il doit d’abord affûter ses outils. Le logiciel de développement couramment utilisé pour apprendre Python est là, ce qui permet à chacun de gagner beaucoup de temps.
Insérer la description de l'image ici

3. Vidéo d'apprentissage d'introduction à Python

Lorsque nous regardons des vidéos pour apprendre, nous ne pouvons pas simplement bouger nos yeux et notre cerveau, mais pas nos mains. La méthode d'apprentissage la plus scientifique consiste à les utiliser après avoir compris. À l'heure actuelle, les projets pratiques sont très appropriés.
Insérer la description de l'image ici

4. Exercices Python

Vérifier les résultats d'apprentissage
Insérer la description de l'image ici

5. Cas pratiques Python

La théorie optique est inutile. Vous devez apprendre à la suivre et à la pratiquer afin de mettre en pratique ce que vous avez appris. À ce stade, vous pouvez apprendre de quelques cas pratiques.
Insérer la description de l'image ici

6. Matériel d'entretien Python

Nous devons apprendre Python pour trouver un emploi bien rémunéré. Les questions d'entretien suivantes sont les derniers documents d'entretien de sociétés Internet de premier plan telles que Alibaba, Tencent, Byte, etc., et les patrons d'Alibaba ont donné des réponses faisant autorité. Après avoir terminé cet ensemble Je crois que tout le monde peut trouver un emploi satisfaisant sur la base des informations recueillies lors de l'entretien.
Insérer la description de l'image ici
Insérer la description de l'image ici
Les amis qui en ont besoin peuvent scanner le code QR de certification officielle CSDN ci-dessous sur WeChat pour l'obtenir gratuitement ! !

Je suppose que tu aimes

Origine blog.csdn.net/maiya_yaya/article/details/131509384
conseillé
Classement