Заменить персонажа в ячейке Excel - PullRequest
0 голосов
/ 03 апреля 2019

Я экспортирую некоторые данные из таблицы SQL в файл Excel, используя код на C #. После экспорта данных в Excel мне нужно добавить одинарную кавычку к любому недопустимому тексту в столбце A. (например, начиная с =, +)

Я добавил формулу Excel для удаления символов

добавлена ​​формула Excel как

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

После применения мне нужно получить тот же текст, добавив одинарную кавычку в начало, если он содержит недопустимый символ. ('= ххх или' + гггг) но содержимое ячейки меняется на 0 при применении формулы

1 Ответ

0 голосов
/ 05 апреля 2019

Я воссоздал свое понимание проблемы в фиктивной электронной таблице Excel (снимок экрана ниже).

Макетной электронной таблицы Excel:

  • Ячейки A1, A4A7 - образцы данных.A1 - это хорошие данные, которые не должны быть изменены.A4 и A7 начинаются с = и + соответственно и поэтому должны быть изменены в соответствии с вашими требованиями.
  • Ячейки в столбце B имеют разные формулы, действующие на ячейки выборки данных,Точная используемая формула отображается в соседней ячейке в столбце C (т.е. формула B1 отображается в C1, формула B2 отображается в C2 и т. Д.).

Excel spreadsheet with test data and formulas

Замечания:

  1. Формула, приводящая к 0, может быть результатом формулыприменяется к неправильной ячейке.В приведенном выше примере B3, B6 и B9 все отображают 0.Обратите внимание, как формулы указывают на пустые ячейки A3, A6 и A9.Если вы видите 0 неожиданно, дважды проверьте, что ваша формула ссылается на правильные ячейки.

  2. Вы привели пример формулы как =IF(OR(LEFT(A2,1)=\"= \",LEFT(A2,1)=\"+ \"),\"'\"&A2,A2), который предположительно взят изстрока C #, содержащая \" escape-символы?В любом случае после = в \"= \" и после + в \"+ \" появляется дополнительный пробел.Из-за лишнего пробела равенства не получаются, поскольку функции LEFT(...,1) возвращают только 1 символ.Как минимум, попробуйте изменить формулу, чтобы убрать лишние пробелы следующим образом:

=IF(OR(LEFT(A2,1)=\"=\",LEFT(A2,1)=\"+\"),\"'\"&A2,A2)
Если ни одно из этих решений не поможет, не могли бы вы поделиться фрагментом вашего файла Excel с формулами, отображаемыми в тексте, как я делал выше?Это может помочь нам легче диагностировать проблему.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...