Wie entferne ich einen einfachen Text, der ein einfaches Anführungszeichen schützt, aus allen ausgewählten Zellen in LibreOffice Calc?


36

Ich habe eine CSV-Datei mit der ersten Spalte importiert, die Datum-Uhrzeit-Werte im ISO 8601- Format enthält

2012-01-01T00:00:00.000Z

für den ersten Moment des Jahres 2012.

Dann habe ich die Spalte ausgewählt, ausgewählt Format Cells...und das benutzerdefinierte Zeitformat als eingegeben , damit LibreOffice das Format erkennt (da ich mich darauf freute, ein Diagramm zu zeichnen)

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

Und dies scheint zu funktionieren, wenn ... ich eine Zelle bearbeite, um ein verstecktes einfaches Anführungszeichen vom Anfang zu entfernen (was dazu dient, den Inhalt einer Zelle vor Interpretation zu schützen), da alle neu formatierten Zellen jetzt Werte wie speichern

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

(Beachten Sie das einfache Anführungszeichen - es ist nur sichtbar, wenn Sie eine bestimmte Zelle bearbeiten).

Und das soll ich für alle Zellen in der Spalte tun. Wie kann ich das automatisieren?

UPDATE: Für meinen speziellen Fall habe ich bereits eine Lösung gefunden: Es hilft, ein Spaltenformat im CSV-Importdialog auf "Zeit" zu setzen. Ich bin jedoch immer noch gespannt, wie dies getan werden kann, wenn ich nicht die ursprüngliche CSV-Datendatei importieren möchte, sondern nur die ODS-Datei mit den bereits importierten Daten ohne das zum Zeitpunkt des Imports angegebene Format.

Antworten:


52

Sie können das führende einfache Anführungszeichen (das eigentlich nicht Teil der Zeichenfolge in der Zelle ist) mithilfe einer regulären Suche entfernen und ersetzen:

  • Suchen Sie nach allen Zeichen zwischen dem Anfang und dem Ende der Zeichenfolge ^.*$
  • durch Streichholz ersetzen &

4
Gott sei Dank für das Internet und für Sie, Sir. Das war genau richtig.
Queso

5
Wie zum Teufel funktioniert es, wenn es überhaupt kein aktuelles Anführungszeichen (noch seinen Code) enthält?
Ivan

5
@ivan - Es ist ein chaotischer Hack, aber er ersetzt das Zitat überhaupt nicht. Grundsätzlich ist das Zitat aus Sicht der Regex-Engine überhaupt nicht vorhanden (es ist eine spezielle Markierung in der Zelle). Als solches entspricht das, was es tut, dem gesamten Inhalt der Zelle (der nicht das Anführungszeichen in der Zeichenkette hat, erinnern Sie sich). Anschließend wird der Zelleninhalt gelöscht ( einschließlich des Löschens des Flags "Nur-Text" ) und der Inhalt erneut eingefügt. Die Datenautodetektions-Engine erkennt dann eine Zahl und interpretiert die erneut eingefügten Daten als solche.
Fake Name

Es ist erwähnenswert, dass hierdurch wahrscheinlich alle Formatierungen gelöscht werden, die auf Zeichen basieren, die spezielle Zellenflags setzen, sowie die "Nur-Text" -Nummernflags.
Fake Name

2
Vielen Dank. Das ist so seltsam, es bettelt um Glauben. Warum in aller Welt sollte es nach dem Import dieses einfache Anführungszeichen geben?
r0berts

30

Wählen Sie im Menü "Daten" die Option "Text in Spalten".


5
Eine sauberere Alternative zur REGEXP-Methode.
jgomo3

Entscheidend ist, dass mit der Funktion "Text in Spalten" der "Typ" der Zellen geändert werden kann. Manchmal bleibt es bei "Text" hängen, und es scheint sich nicht um eine größere Neuformatierung zu handeln. So geht's: Klicken Sie unten im Dialogfeld unter "Felder" auf die Spaltenüberschrift "Standard" und wählen Sie den gewünschten Typ in der Dropdown-Liste "Spaltentyp" aus.
sxc731

Der Regex funktionierte nicht in LibraOffice, sondern änderte den Spaltentyp von "Standard" in "Text", wobei "Text in Spalten" funktionierte.
Ausfahrt

Scratch, dass, sobald ich versuche, die Spalte als eine Zahl mit 8 Dezimalstellen zu formatieren, es die einzelnen Anführungszeichen wieder vor fügt. Ich gebe auf und kehre zu Excel zurück.
Ausfahrt

0

Ein Versuch , für regex ersetzen ^.\*$mit &abgestürzt Libreoffice 5. Ersetzen von .\*mit &hat gut funktioniert.


-1

Durch die Verwendung eines kleinen Computer-Formatierungs- und Such-Zaubertricks (Programmiertechnik, wenn Sie so wollen), der als regulärer Ausdruck oder kurz Regex bezeichnet wird. Beispiele finden Sie unter http://www.regular-expressions.info/examples.html


3
du wärst ein cooler Typ, wenn du ein Beispiel für Regex schreiben könntest.
Mikhail

-2

Eigentlich müssen Sie zuerst das Dollarzeichen in Anführungszeichen setzen.

Grundsätzlich stellt libreOffice aus unbekannten Gründen ein einfaches Anführungszeichen in das Feld. Sie müssen also alles bis auf das Dollarzeichen durch nichts ersetzen. Verwenden Sie also die Regex von ^. * \ $ Und ersetzen Sie sie durch nichts. Hat für mich gearbeitet.


Von welchem ​​Dollarzeichen redest du?
Scott
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.