我正在使用python中的openpyxl来提取特定的列数据,该列数据在少数单元格中有逗号分隔的值。输出我得到'CVE-2021-1111,CVE-2021‘。所需输出为“CVE-2021-1111”,“CVE-2021”。
请帮帮我
从excel列输入:(这里的大量数据被截断) CVE-2017-12652 CVE-2020-12243 CVE-2019-14866 CVE-2019-16935 CVE-17493 CVE-2021-1111,CVE-2021
来自openpyxl导入工作簿,load_workbook
高级= load_workbook("C:\senior.xlsx") sr = senior.active
range1 = sr'B2':'B15‘csv1 = []用于range1中的名称:用于单元格名称: if cell.value != None: csv1.append(cell.value) print(csv1)
我得到的产出是:“CVE-2017-12652”、“CVE-2020-12243”、“CVE-2019-14866”、“CVE-2019-16935”、“CVE-2019-17493”、“CVE-2021-1111、CVE-2021”
要求输出(最后两个值应分开):“CVE-2017-12652”、“CVE-2020-12243”、“CVE-2019-14866”、“CVE-2019-16935”、“CVE-2019-17493”、“CVE-2021-1111”、“CVE-2021-2021”。
发布于 2022-04-18 15:43:06
正如您所猜测的,您将需要用预期的逗号分隔cell.value。此外,还可以在附加到csv1以返回所需输出之前删除字符串中的空格。
from openpyxl import Workbook, load_workbook
senior = load_workbook("C:\senior.xlsx")
sr = senior.active
range1 = sr['B2':'B15']
csv1 = []
for names in range1:
for cell in names:
if cell.value != None:
cell_value = cell.value.replace(' ', '').split(',')
csv1 += cell_value if isinstance(cell_value, list) else [cell_value]编辑:基于注释,我添加了一个更简单的版本,而不是在一行中填充csv1。
from openpyxl import Workbook, load_workbook
senior = load_workbook("C:\senior.xlsx")
sr = senior.active
range1 = sr['B2':'B15']
csv1 = []
for names in range1:
for cell in names:
if cell.value != None:
cell_value = cell.value.replace(' ', '').split(',')
if isinstance(cell_value, list):
csv1 += cell_value
else:
csv1.append(cell_value)https://stackoverflow.com/questions/71913732
复制相似问题