筛选Excel表

脚本功能:你提供Excel表的某一列,我会给你输出对应的其他列的内容

import openpyxl
import os

print('''假设一张Excel表中有6列,你手头有部分数据可以跟第3列匹配
你希望得到匹配项的第4列的内容时。就可以使用此脚本。
1. 你需要指定Excel表的位置
2. 你需要从终端中输入你的所有数据
3. 一旦匹配成功,终端中打印出来,并且会导出结果到桌面''')
print()
desktop_path = os.path.join(os.path.expanduser("~"), 'Desktop')
path_result = os.path.join(desktop_path, 'result.txt')  # 用来存储终端中输出的内容到一个文本中,方便用户使用数据,此为文本路径
result = []  # 用来存储匹配结果

excel_path = input("请输入Excel表的绝对路径:")
print("请输入关键字(输入quit结束输入):")
word = []  # 存储用户输入的内容
while True:
    char = input()
    char = char.strip()
    # 下面的两个if主要是判断输入的内容中是否:某行是空白,某行用逗号分割了字符串(主要适用于多个tid)
    if char == '':
        continue
    if ',' in char:
        char = char.split(',', 1)[0]
    if 'quit' in char:
        break
    word.append(char)



workbook = openpyxl.load_workbook(excel_path)  # 返回一个workbook数据类型的值
sheet = workbook.active  # 获取活动表
print('当前活动表是:' + str(sheet))

rows = sheet.max_row  # 获取行数,值是int型

you_have_column = 3  # 已有数据的列
you_want_column = 4  # 想获取数据的列

print('输入的内容' + '\t' + '匹配的内容')
for i in range(1, rows + 1):
    if str(sheet.cell(i, you_have_column).value) in word:  # 如果单元格中的值在all_message中找到了
        # 把对应的值写到"想获取数据的列"
        you_want = str(sheet.cell(i, you_want_column).value)
        print(str(sheet.cell(i, you_have_column).value) + '\t' + you_want)
        result.append(str(sheet.cell(i, you_have_column).value) + '\t' + you_want)
workbook.close()  # 关闭Excel表格
print('操作结束')

# 下面的代码用来把终端中的内容输出到一个文本中
a = open(path_result, 'w', encoding='utf8')
a.write('输入的内容' + '\t' + '匹配的内容')
a.write('\n')
for r in result:
    a.write(r)
    a.write('\n')
a.close()
# os.system('pause')  # 在脚本中运行时可以删除此行

1.gif

猜你喜欢

转载自blog.csdn.net/weixin_44288604/article/details/130205185