在 Windows Forms 应用中使用 VB.NET 检测 Excel 单元格中的删除线

Detect Strikethrough in Excel Cell with VB.NET on a Windows Forms App

我目前正在用 vb.net 和 SQL 后端编写 windows 形式的程序。该程序采用客户创建的工程变更单、Material 更新清单,并重新创建我们上传到 Oracle 系统以创建 BOM 变更的自定义模板。客户向我们发送了一份包含更新 BOM 的 excel 价差 sheet。添加到 BOM 中的项目以红色文本显示,从 BOM 中删除的项目以红色文本显示,并在文本中划线。我的程序正在读取 excel 列并将项目编号添加到包含所有新 BOM 的 SQL table 中。我的问题是已删除的项目,显示为红色并带有删除线的项目,也正在添加。我需要一种方法来检测字体是否有删除线,以便我可以阻止将它们添加到 SQL table。但是,我找不到任何方法来检测 excel sheet 上的文本格式。我知道您可以在 excel 宏中使用 VBA 检测文本格式,但我找不到任何有关如何使用 windows 表单应用程序上的 VB.NET 执行此操作的信息。

我认为代码看起来像这样,但是“字符”在这里不是一个合法的选项。

If xlworksheet.cells(1,1).characters.font.strikethrough = true then
next
end if

是否有检测文本格式选项的方法,例如在 windows 表单中使用 VB.NET 删除线。

我们可以使用 excel 互操作来做到这一点。我们可以寻找Font.Strikethrough。以下代码对我有用。

Dim range as excel.Range = xlworksheet.cells(1,1)
If range.Font.Strikethrough = true then
'Strike through detected, do something
else
'No strike through detected, do something else
End If

上面的代码查看了 excel 单元格 (1,1) 或 A1 并检查它是否有删除线。我通过在此单元格的文本中应用删除线并重新保存文件和 运行 代码再次确认此解决方案而没有删除线。