Как удалить простой текст, защищающий одинарную кавычку из всех выделенных ячеек в LibreOffice Calc?


36

Я импортировал файл CSV, в котором первый столбец содержит значения даты и времени в формате ISO 8601 , например

2012-01-01T00:00:00.000Z

на первый момент 2012 года.

Затем, желая заставить LibreOffice распознавать формат (как я рассчитывал построить диаграмму), я выбрал столбец, выбрал Format Cells...и ввел пользовательский формат времени как

YYYY-MM-DDTHH:MM:SS.000Z

И это похоже на работу, если ... Я редактирую ячейку, чтобы удалить скрытую одинарную кавычку из ее начала (которая служит для защиты содержимого ячейки от интерпретации), поскольку все вновь отформатированные ячейки теперь хранят значения, такие как

'2012-01-01T00:00:00.000Z

(обратите внимание на одинарную кавычку - она ​​видна только при редактировании определенной ячейки).

И я должен сделать это для всех клеток в столбце. Как я могу автоматизировать это?

ОБНОВЛЕНИЕ: я уже нашел решение для моего конкретного случая: оно помогает установить формат столбца на «время» в диалоге импорта CSV. Но мне все еще интересно, как это можно сделать в случае, если у меня не будет исходного файла данных .csv для импорта, а будет только файл .ods с уже импортированными данными без формата, указанного во время импорта.

Ответы:


52

Вы можете удалить начальную одинарную кавычку (которая на самом деле не является частью строки в ячейке) с помощью поиска на основе регулярных выражений и заменить:

  • Поиск всех символов между началом и концом строки ^.*$
  • заменить на матч &

4
Слава Богу за Интернет и за вас, сэр. Это было точно правильно.
Кесо

5
Как, черт возьми, это работает, если в нем даже нет реального символа кавычки (ни его кода)?
Иван

5
@ivan - Это грязный хак, но он на самом деле не заменяет цитату. По сути, с точки зрения движка регулярных выражений, цитата вообще отсутствует (это специальный флаг на ячейке). Таким образом, он соответствует всему содержимому ячейки (запомните, что в строке нет кавычек). Затем он удаляет содержимое ячейки ( что включает очистку флага «обычный текст» ), а затем снова вставляет содержимое. Затем механизм автоопределения данных видит число и интерпретирует повторно вставленные данные как таковые.
Фальшивое имя

Стоит отметить, что это, вероятно, удалит любое форматирование, которое опирается на символы, которые устанавливают специальные флаги ячеек, а также флаги чисел в виде простого текста.
Фальшивое имя

2
Спасибо. Это так странно, что не верится. Почему после импорта должен быть этот символ одинарной кавычки?
r0berts

30

В меню «Данные» выберите «Текст в столбцы».


5
Более чистая альтернатива методу REGEXP.
jgomo3

Важно отметить, что функция «Текст в столбцы» позволяет изменять «тип» ячеек. Иногда это застревает на «тексте», и никакое количество переформатирования, кажется, не может это исправить. Вот как это делается: в нижней части диалогового окна в разделе «Поля» щелкните заголовок столбца с надписью «Стандартный», затем выберите нужный тип в раскрывающемся списке «Тип столбца».
sxc731

Regex не работал в LibraOffice, но изменил тип столбца на «Текст» с «Стандартный» с помощью «Текст для столбцов».
Выход

Поцарапайте, что, как только я попытаюсь стилизовать столбец как число с 8 десятичными знаками, он добавляет одинарные кавычки впереди. Я сдаюсь, возвращаясь в Excel.
Выход

0

Попытка для регулярных выражений замены ^.\*$с &разбившимся LibreOffice 5. Заменой .\*с &обработанным штрафом.


-1

С помощью небольшого компьютерного фокусирования поиска и поиска (техники программирования, если хотите), которое называется Regular Expression или regex для краткости. Для примеров, пожалуйста, смотрите - http://www.regular-expressions.info/examples.html


3
ты был бы крутым чуваком, если бы мог написать пример регулярного выражения.
Михаил

-2

На самом деле, вам нужно сначала процитировать знак доллара.

По сути, libreOffice по какой-то неизвестной причине добавляет в поле одну кавычку. Таким образом, вам нужно заменить что-либо до знака доллара ничем. Поэтому используйте регулярное выражение ^. * \ $ И ничего не заменяйте. Работал на меня.


О каком знаке доллара ты говоришь?
Скотт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.