python程序13:一个从excel提取数据的程序

对于用python处理excel的数据,需要openpyxl模块,简单介绍一下。

openpyxl是一个用于读写Excel文件的Python库。它可以读取和写入.xlsx文件,并且提供了许多功能来操作Excel文件,例如创建、修改、删除工作表、单元格和图表等。openpyxl还支持许多Excel特性,如公式、图表、图像和数据验证等。此外,它还支持Pandas数据结构和NumPy数组,使得数据的导入和导出更加方便。

import openpyxl
workbook = openpyxl.load_workbook('example.xlsx')# 打开Excel文件
sheet = workbook.active# 获取工作表
cell = sheet['A1']# 读取单元格
print(cell.value)
sheet['A2'] = 'Hello, world!'# 写入单元格
workbook.save('example.xlsx')# 保存文件

下面写一下源代码,实现功能是从指定文件夹下的所有Excel文件中提取ID数据,并将这些数据写入一个新的Excel文件中:

import os
from openpyxl import load_workbook, Workbook
from openpyxl.styles import Font, colors, Alignment, PatternFill

work_path = os.getcwd() + "\资料"
pathss = []

for root, dirs, files in os.walk(work_path):
    path = [os.path.join(root, name) for name in files]
    for i in range(len(path)):
        if path[i].endswith(".xlsx"):
            pathss.append(path[i])

def Get_system_ID(file):
    wb = load_workbook(file)
    ws = wb.active
    ID_list = []
    for row in range(2, ws.max_row+1):
        ID = ws["A"+str(row)].value
        if ID != None:
            ID_list.append(ID)
    return ID_list

total_list = []
for file in pathss:
    info = Get_system_ID(file)
    total_list += info

wb = Workbook()
ws = wb.active
ws.column_dimensions['A'].width=18.5
ws.cell(row=1,column=1,value="ID")
color_fill = PatternFill(fill_type='solid', fgColor="B3CFA1")
ws.cell(row=1, column=1).fill = color_fill

for row in range(1,len(total_list)+1):
    ws.cell(row=row+1,column=1,value=total_list[row-1])

font_set = Font(name='Arial', size=9)
for i in range(1,ws.max_row+1):
    ws.cell(row=i,column=1).font = font_set
    ws.cell(row=i,column=1).alignment = Alignment(horizontal='left', vertical='center',shrink_to_fit=True)

wb.save(os.getcwd()+"\ID.xlsx")
print(f"\n共获取到 {len(pathss)} 个 Excel表,共 {len(total_list)} 个ID。")

具体实现是使用os模块获取指定文件夹下所有的Excel文件路径,并将它们存入一个列表中。然后定义了一个函数Get_system_ID,用于从一个Excel文件中读取ID数据。接着,代码遍历所有Excel文件,使用Get_system_ID函数获取ID数据,并将它们存入一个总列表中。最后,代码创建了一个新的Excel文件,将总列表中的ID数据写入其中。

这里是遍历资料文件夹下的所有excel文件提出A列信息并输出到ID表格里,得到数据。

有条件的同学可以尝试一下,需要在资料文件夹里面添加一些excel文档。

发表回复