在R中导入excel文件时,我必须检查包含“删除线”格式的数据
我们有任何方法来检测它们吗?欢迎使用R和Python方法
我在下面给出了一个小样本程序,它使用openpyxl包过滤掉带有删除线的文本(我使用Python 3.7.0在2.5.6版本上进行了测试)。对不起,花了这么长时间才回复你。
import openpyxl as opx
from openpyxl.styles import Font
def ignore_strikethrough(cell):
if cell.font.strike:
return False
else:
return True
wb = opx.load_workbook('test.xlsx')
ws = wb.active
colA = ws['A']
fColA = filter(ignore_strikethrough, colA)
for i in fColA:
print("Cell {0}{1} has value {2}".format(i.column, i.row, i.value))
print(i.col_idx)
我在一个带有默认工作表的新工作簿上测试了它,在A列的前五行中有字母a,b,c,d,e,我在其中将删除格式应用于b和d。该程序过滤掉了已经将删除线应用于字体的columnA中的单元格,然后打印其余单元格的单元格,行和值。 col_idx属性返回从1开始的数字列值。
我找到了一种方法:
'#假设1到10的列有值:A,第5个A包含“删除线”
TEST_wb = load_workbook(filename = 'TEST.xlsx')
TEST_wb_s = TEST_wb.active
for i in range(1, TEST_wb_s.max_row+1):
ck_range_A = TEST_wb_s['A'+str(i)]
if ck_range_A.font.strikethrough == True:
print('YES')
else:
print('NO')
但它没有告诉位置(这种情况是行号),当有很多结果时,很难知道哪里包含“删除线”,我怎样才能对语句的结果进行矢量化?