我正在编写一个工具,用于将简单数据库与Excel表格同步。数据库表中的每个条目对应工作表中的一行。我使用C#和Excel互操作COM接口将Excel表格读入工具中,然后在同步后比较项目的值(即Excel表格中的其中一列),以确保它们相等。昨天我发现了一种情况,其中比较结果不正确:
我甚至尝试像这样在VBA中复制单元格的值('hello')。
"'<MedalTitle>' Medal - <MedalDescription>"
"<MedalTitle>' Medal - <MedalDescription>"
第二个问题是我从Excel中读取的,可以看到它跳过了第一个撇号。有没有办法告诉Excel将单元格视为纯文本(不,仅设置单元格的格式不起作用)?我甚至尝试像这样在VBA中复制单元格的值('hello')。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Offset(1, 0).Value = Target.Worksheet.Range("b2").Value
Target.Offset(2, 0).Value = Target.Worksheet.Range("b2").Formula
Target.Offset(3, 0).Formula = Target.Worksheet.Range("b2").Formula
Target.Offset(4, 0).Formula = Target.Worksheet.Range("b2").Value
End Sub
结果是目标单元格的值始终为hello'
如果没有其他办法,我将不得不执行类似于下面这样的丑陋操作
if (dbitem.value[0] == ''' )
{
// stuff
}
else
{
// regular comparison
}