【问题标题】:Replace character in excel cell替换excel单元格中的字符
【发布时间】:2019-04-06 00:28:31
【问题描述】:

我正在使用 c# 代码将 sql 表中的一些数据导出到 excel 文件中。将数据导出到 excel 后,我需要在 A 列中附加单引号任何无效文本。(比如盯着 =,+)

我添加了 excel 公式来删除字符

添加excel公式为

=IF(OR(LEFT(A2,1)=\"= \",LEFT(A2,1)=\"+ \"),\"'\"&A2,A2)

应用后,如果它包含任何无效字符,我需要通过在开头附加单引号来获取相同的文本。 ('=xxx 或 '+yyy) 但是当应用公式时单元格内容变为 0

【问题讨论】:

  • 如果您能向我们展示 C# 代码,那就太棒了。

标签: c# excel-formula


【解决方案1】:

我在一个虚拟 Excel 电子表格中重新创建了我对问题的理解(下面的屏幕截图)。

虚拟 Excel 电子表格:

  • 单元格A1A4A7 是数据样本。 A1 是不应更改的好数据。 A4A7 分别以 =+ 开头,因此应根据您的要求进行更改。
  • B 列中的单元格在数据样本单元格中具有不同的公式。使用的确切公式显示在其相邻单元格的C 列中(即B1 的公式显示在C1 中,B2 的公式显示在C2 中等)。

观察:

  1. 导致0 的公式可能是公式应用于不正确的单元格的结果。在上面的示例中,B3B6B9 都显示 0。请注意公式如何指向空单元格 A3A6A9。如果您意外看到0,请仔细检查您的公式是否引用了正确的单元格。

  2. 您列出的公式示例为=IF(OR(LEFT(A2,1)=\"= \",LEFT(A2,1)=\"+ \"),\"'\"&A2,A2),它可能取自给定\" 转义字符的C# 字符串?在任何情况下,\"= \" 中的=\"+ \" 中的+ 之后都有一个额外的空格。由于LEFT(...,1) 函数只返回1 个字符,因此额外的空间总是会导致等式失败。至少,尝试更改您的公式以删除这些额外的空格,如下所示:

=IF(OR(LEFT(A2,1)=\"=\",LEFT(A2,1)=\"+\"),\"'\"&A2,A2)
  1. 如果这些解决方案都没有帮助,您是否介意像我在上面所做的那样与以文本形式显示的公式共享您的 Excel 文件的 sn-p?这可能有助于我们更轻松地诊断问题。

【讨论】:

    猜你喜欢
    • 2015-10-02
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    相关资源
    最近更新 更多