Bagaimana cara menghapus teks biasa yang melindungi kutipan tunggal dari semua sel yang dipilih di LibreOffice Calc?

36

Saya telah mengimpor file CSV yang memiliki kolom pertama sebagai nilai waktu-waktu dalam format ISO 8601 seperti

2012-01-01T00:00:00.000Z

untuk momen pertama tahun 2012.

Kemudian, berkeinginan untuk membuat LibreOffice mengenali format (seperti yang saya cari untuk merencanakan diagram), saya telah memilih kolom, memilih Format Cells...dan memasukkan format waktu khusus sebagai

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

Dan ini tampaknya berhasil jika ... Saya mengedit sel untuk menghapus kutipan tunggal tersembunyi dari awalnya (yang berfungsi untuk melindungi konten sel agar tidak ditafsirkan) karena semua sel yang baru diformat sekarang menyimpan nilai seperti

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

(catat kutipan tunggal - ini hanya terlihat ketika Anda mengedit sel tertentu).

Dan saya harus melakukannya untuk semua sel di kolom. Bagaimana saya mengotomatisasi ini?

UPDATE: Saya sudah menemukan solusi untuk kasus saya: membantu mengatur format kolom menjadi "waktu" dalam dialog impor CSV. Tapi saya masih penasaran bagaimana ini bisa dilakukan kalau-kalau saya tidak akan memiliki file data .csv asli untuk diimpor tetapi hanya file .ods dengan data yang sudah diimpor tanpa format yang ditentukan pada waktu impor.

Ivan
sumber

Jawaban:

52

Anda dapat menghapus kutipan tunggal terkemuka (yang sebenarnya bukan bagian dari string di dalam sel) menggunakan pencarian berbasis-regex dan ganti:

  • Cari semua karakter antara awal dan akhir string ^.*$
  • ganti dengan yang cocok &
tohuwawohu
sumber
4
Terima kasih banyak untuk internet dan untuk Anda, tuan. Ini benar sekali.
queso
5
Bagaimana cara kerjanya jika ia bahkan tidak memiliki simbol kutipan yang sebenarnya (atau kodenya) di dalamnya?
Ivan
5
@ivan - Ini adalah hack yang berantakan, tetapi itu tidak benar-benar menggantikan kutipan sama sekali. Pada dasarnya, dari sudut pandang mesin regex, kuotasi tidak ada sama sekali (ini adalah bendera khusus pada sel). Karena itu, apa yang dilakukannya adalah mencocokkan seluruh isi sel (yang tidak memiliki kutipan dalam string, ingat). Lalu, apa yang dilakukannya adalah menghapus konten sel ( yang termasuk membersihkan bendera "teks biasa" ), dan kemudian memasukkan kembali konten. Mesin deteksi otomatis data kemudian melihat angka, dan menginterpretasikan data yang dimasukkan kembali.
Nama Palsu
Perlu dicatat bahwa ini mungkin akan menghapus semua pemformatan yang bergantung pada karakter yang mengatur flag cell khusus, serta flag angka "plain-text".
Nama Palsu
2
Terima kasih. Ini sangat aneh, itu pengemis kepercayaan. Mengapa harus ada karakter kutipan tunggal ini setelah mengimpor?
r0berts
30

Dari menu "Data", pilih "Teks ke kolom".

pfrenssen
sumber
5
Alternatif yang lebih bersih dari metode REGEXP.
jgomo3
Yang terpenting, fungsi "Teks ke kolom" memungkinkan Anda mengubah "tipe" sel. Kadang-kadang macet di "teks" dan tidak ada jumlah format ulang untuk memperbaikinya. Begini caranya: di bagian bawah kotak dialog di bawah "Bidang", klik tajuk kolom yang bertuliskan "Standar", lalu pilih jenis yang diinginkan di tarik turun "Jenis kolom".
sxc731
Regex tidak berfungsi di LibraOffice, tetapi ubah jenis kolom menjadi "Teks" dari "Standar" menggunakan Teks menjadi Kolom yang berfungsi.
Keluar dari
Gosok itu, segera setelah saya mencoba menata kolom sebagai angka dengan 8 desimal, itu menambahkan tanda kutip tunggal kembali di depan. Saya menyerah, kembali ke Excel.
Keluar
0

Upaya mengganti regex ^.\*$dengan &LibreOffice yang macet 5. Mengganti .\*dengan &berfungsi dengan baik.

VMT
sumber
-1

Dengan menggunakan format komputer kecil dan mencari trik sulap (teknik pemrograman jika Anda mau) disebut Regresi Biasa atau singkatnya regex. Untuk contoh, silakan lihat - http://www.regular-expressions.info/examples.html

Steve
sumber
3
Anda akan menjadi cowok keren jika Anda bisa menulis contoh regex.
Mikhail
-2

Sebenarnya, Anda perlu mengutip tanda dolar terlebih dahulu.

Pada dasarnya libreOffice menambahkan satu kutipan di lapangan, untuk beberapa alasan yang tidak diketahui. Jadi, Anda perlu mengganti apa pun hingga tanda dolar tanpa apa-apa. Jadi, gunakan regex dari ^. * \ $ Dan gantikan dengan nol. Bekerja untukku.

Andrew B.
sumber
Tanda dolar apa yang Anda bicarakan?
Scott