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
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"): #只提取后缀为xlsx的文件
pathss.append(path[i])
from openpyxl import load_workbook #用于读取Excel中的信息
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 #ID信息在A列
if ID != None: #过滤空值
ID_list.append(ID)
return ID_list
total_list = []#获取数据,存入总列表
for file in pathss:
info = Get_system_ID(file)
total_list += info
from openpyxl import Workbook#写入数据到新的excel表,并设置格式
from openpyxl.styles import Font, colors, Alignment #字体,颜色,对齐
from openpyxl.styles import PatternFill #单元格填充
wb = Workbook() #新建Excel工作簿
ws = wb.active #使用活动工作表
ws.column_dimensions['A'].width=18.5 #设定A列宽度
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文档。

发表评论

zh_CNChinese