Jak usunąć zwykły tekst chroniący pojedynczy cytat ze wszystkich wybranych komórek w LibreOffice Calc?


36

Mam importowany plik CSV mający pierwszą kolumnę jako wartości daty i godziny w ISO 8601 Format niczym

2012-01-01T00:00:00.000Z

po raz pierwszy w 2012 roku.

Następnie, chcąc sprawić, aby LibreOffice rozpoznał format (ponieważ nie mogłem się doczekać, aby wykreślić schemat), wybrałem kolumnę, wybrałem Format Cells...i wprowadziłem niestandardowy format czasu jako

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

I wydaje się to działać, jeśli ... Edytuję komórkę, aby usunąć z początku ukryty pojedynczy cudzysłów (który służy do ochrony zawartości komórki przed interpretacją), ponieważ wszystkie nowo sformatowane komórki przechowują teraz wartości takie jak

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

(zwróć uwagę na pojedynczy cytat - jest widoczny tylko podczas edycji określonej komórki).

I mam to zrobić dla wszystkich komórek w kolumnie. Jak mogę to zautomatyzować?

AKTUALIZACJA: Znalazłem już rozwiązanie dla mojego konkretnego przypadku: pomaga ustawić format kolumny na „czas” w oknie dialogowym importu CSV. Ale nadal jestem ciekawy, jak to zrobić, gdybym nie miał oryginalnego pliku danych .csv do zaimportowania, ale tylko plik .ods z danymi już zaimportowanymi bez formatu określonego podczas importu.

Odpowiedzi:


52

Możesz usunąć wiodący pojedynczy cudzysłów (który tak naprawdę nie jest częścią ciągu w komórce), używając wyszukiwania opartego na wyrażeniach regularnych i zamieniając:

  • Wyszukaj wszystkie znaki między początkiem a końcem ciągu ^.*$
  • zamień na dopasowanie &

4
Dziękuję niebiosom za internet i za pana. Dokładnie tak było.
queso,

5
Jak, do cholery, działa, jeśli nawet nie ma w nim rzeczywistego symbolu cudzysłowu (ani jego kodu)?
Ivan

5
@ivan - To chaotyczny hack, ale tak naprawdę wcale nie zastępuje cytatu. Zasadniczo, z perspektywy silnika regex, w ogóle nie ma cytatu (jest to specjalna flaga na komórce). W związku z tym dopasowuje całą zawartość komórki (pamiętaj, że nie ma tam cudzysłowu). Następnie usuwa zawartość komórki ( co obejmuje czyszczenie flagi „zwykłego tekstu” ), a następnie ponownie wstawia zawartość. Silnik autodetekcji danych następnie widzi liczbę i interpretuje ponownie wstawione dane jako takie.
Fałszywe imię

Warto zauważyć, że prawdopodobnie usunie to wszelkie formatowanie, które opiera się na znakach, które ustawiają specjalne flagi komórek, a także flagi liczbowe w postaci zwykłego tekstu.
Fałszywe imię

2
Dziękuję Ci. To takie dziwne, że zaczyna budzić wiarę. Dlaczego, do cholery, po zaimportowaniu powinien istnieć ten pojedynczy cytat?
r0berts

30

Z menu „Dane” wybierz „Tekst do kolumn”.


5
Czystsza alternatywa dla metody REGEXP.
jgomo3

Co najważniejsze, funkcja „Tekst do kolumn” umożliwia zmianę „typu” komórek. Czasami jest zablokowany na „tekście” i wydaje się, że żadna ilość przeformatowania go nie naprawia. Oto jak: u dołu okna dialogowego w polu „Pola” kliknij nagłówek kolumny z napisem „Standard”, a następnie wybierz żądany typ z menu rozwijanego „Typ kolumny”.
sxc731,

Regex nie działał w LibraOffice, ale zmień typ kolumny na „Tekst” z „Standardowy” przy użyciu Tekst na kolumny.
Wyjdź

Zadrapanie, że gdy tylko spróbuję stylizować kolumnę jako liczbę z 8 miejscami po przecinku, dodaje pojedyncze cudzysłowy z powrotem na początku. Poddaję się, wracając do Excela.
Wyjdź

0

Próbą dla regex Wymiana ^.\*$z &rozbił LibreOffice 5. Wymiana .\*z &działało.



-2

Właściwie musisz najpierw podać znak dolara.

Zasadniczo libreOffice przygotowuje pojedynczy cytat w terenie z nieznanego powodu. Musisz więc zastąpić wszystko znakiem dolara niczym. Więc użyj wyrażenia regularnego ^. * \ $ I zamień go na nic. Pracował dla mnie.


O jakim znaku dolara mówisz?
Scott,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.