以下代码实现对excel文件的打开、关闭、读、写、删除
- import os
- import openpyxl
-
- # 定义一个函数来处理单个Excel文件
- def process_excel(file_path):
- # 打开 Excel 文件
- wb = openpyxl.load_workbook(file_path)
-
- # 获取所有工作表的名称
- #sheet_names = wb.sheetnames
- # 遍历所有工作表
- #for sheet_name in sheet_names:
- # 选择当前工作表
- #worksheet = wb[sheet_name]
-
- # 选择特定的工作表
- sheet = wb['Sheet1']
-
- # 读取第一行第一列的单元格内容
- cell_value = sheet.cell(row=1, column=1).value
- # 判断单元格内容是否为"name"
-
- if cell_value == "name":
- # 添加一列
- sheet.insert_cols(2) # 在第二列插入新列
- # 在新列的第一个单元格写入标题名
- sheet.cell(row=1, column=2, value='hex_value')
-
- # 遍历每行
- for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row):#第一行是标题从第二行开始遍历
- cell_value = row[0].value # 获取数值列的值
- if cell_value is not None:
- hex_value = hex(cell_value) # 将数值转换成十六进制
- int_hex_value = int(hex_value,16)
- row[1].value = int_hex_value & 0xFF #将值写入第二列
-
- # 保存修改后的工作簿
- file_name, file_extension = os.path.splitext(os.path.basename(file_path))
- file_directory = os.path.dirname(file_path)
- new_file_name = file_name + "_process.xlsx"
- new_file_path = os.path.join(file_directory, new_file_name)
- wb.save(new_file_path)
- print(new_file_path+ " saved")
-
- # 关闭工作簿
- wb.close()
-
- # 遍历目录下的所有文件
- print("*********************Python:解析excel数据*********************")
- print("说明:解析信息另存为同名文件_process.xlsx文件中")
- directory = input('请输入文件路径:')
- #directory = './data' # 替换成你要遍历的目录路径
-
- for root, dirs, files in os.walk(directory):
- for file in files:
- if file.endswith('.xlsx'):
- file_path = os.path.join(root, file)
- print(file_path + " processing...")
- process_excel(file_path)
-
- os.system('echo 任意键退出...')
- os.system('pause>nul')