脚本功能:你提供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') # 在脚本中运行时可以删除此行
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134187.html