Excel在单元格值中转义引号或撇号

Posted

技术标签:

【中文标题】Excel在单元格值中转义引号或撇号【英文标题】:Excel escaping quotes or apostrophes in cell values 【发布时间】:2014-11-21 21:45:58 【问题描述】:

我在 Excel 电子表格中从客户那里获得了很多数据库信息。我经常需要将这些数据插入/更新回数据库。

我经常使用 excel 通过将一堆单元格连接在一起来生成插入和更新语句。有时数据包括文本单元格,其中可以有单引号。如果不小心处理,这些单引号会使 SQL 语句中断。

当将一堆单元格值连接在一起时,如何通过公式转义文本数据中的单引号,以便生成的 SQL 脚本有效?

【问题讨论】:

我把这个扔在这里是因为我一直忘记(虽然我可能不会,现在......)并且永远无法快速找到答案。 相关:如果您尝试使用 VBA 进行替换,这个问题可能会对您有所帮助。 ***.com/questions/17430938/… 有时我不想更改单元格中的实际值...但很多时候查找/替换仅限于单列或其他任何内容都绰绰有余。 【参考方案1】:

我发现的最佳解决方案是使用以下方法:

=SUBSTITUTE(A1, "'", "''")

这将用两个单引号替换所有单引号,这在 T-SQL 语句中转义字符并将其视为字符串数据。

【讨论】:

【参考方案2】:

需要做类似的事情,这样我才能“转义”双引号:

=CONCATENATE(CHAR(34),"hello",CHAR(34))

结果:

【讨论】:

【参考方案3】:

类似于罗兰:

=SUBSTITUTE(SUBSTITUTE(A1, "'", "\'"), ",", "\,")

【讨论】:

【参考方案4】:

使用带有双引号的CONCATENATE 只需要转义引号。这样做如下:

=CONCATENATE("""";"In quotes!";"""")

【讨论】:

以上是关于Excel在单元格值中转义引号或撇号的主要内容,如果未能解决你的问题,请参考以下文章

如何在excel 中运算公式中引用单元格值

从 Excel 中的另一个单元格控制单元格值

Excel VBA:用相邻的单元格值填充空单元格

Python-openpyxl对excel取消/合并单元格,以及修改单元格值

单元格格式为文本或前面有撇号,SAP Webi 中生成的 Excel 文件

如何使用合并单元格值大于单元格宽度的 Apache-POI 增加 excel 行的高度?