Bagaimana cara meminta Excel untuk mengimpor file CSV dengan koma di beberapa bidang konten?

13

Bagaimana cara saya mendapatkan Excel untuk mengimpor file CSV saya ?

Mengajukan

Saya memiliki file yang mengklaim sebagai CSV. Ini berisi 10 bidang, yang semuanya dikelilingi oleh tanda kutip ganda (ya, bahkan tanggal dan angka.) 2 atau 3 bidang ini berisi koma . Tetapi data di bidang ini juga dikelilingi oleh tanda kutip.

Masalah

Ketika saya mencoba untuk membuka file ini, Excel benar-benar mengabaikan tanda kutip dan mengasumsikan bahwa mereka adalah bagian dari data.

Karena itu ia membagi bidang yang mengandung koma menjadi beberapa kolom.

Ini buruk, setidaknya bagi saya.

Contoh data

"20051", "", "2009 Sep 30 02:53:23", "SOMETEXT", "", "5000", "2000000", "2008 - 99999 - -99999, 2008 - unk - unk", "191 - SOMETEXT - SOMETEXT, 192 - SOMETEXT - SOMETEXT, 193 - SOMETEXT - SOMETEXT, 194 - SOMETEXT - SOMETEXT, SOMETEXT, 195 - SOMETEXT - SOMETEXT "," 45 - SOMETEXT SOMETEXT "," 45 - SOMETEXT - SOMETEXT - SOMETEXT, 141 - SOMETEXT - SOMETEXT "
"20052", "SOMETEXT", "2009 Sep 08 07:56:50", "SOMETEXT", "", "50000", "5000000", "2007 - 99999 - 99999", "146 - SOMETEXT - SOMETEXT, 145 - SOMETEXT - SOMETEXT, 147 - SOMETEXT - SOMETEXT, 148 - SOMETEXT - SOMETEXT "," 103 - SOMETEXT - SOMETEXT, 1131 - SOMETEXT - SOMETEXT "

Apa yang sudah saya coba?

Saya telah menggunakan fasilitas impor untuk menentukan pembatas dan semacamnya, tetapi ini sepertinya tidak membantu.

Saya telah mencoba mengalihkan "Pembatas Teks" dari kutipan ganda ke "{none}" dan kembali lagi. Tampaknya ini hanya memengaruhi kolom pertama. Ini akan masuk akal jika dimungkinkan untuk mengklik kolom lain dan menerapkan pengaturan ini untuk masing-masing. Tapi ini bukan masalahnya, dan sepertinya ini dimaksudkan untuk bekerja lintas kolom.

Apa lagi yang bisa saya coba?

Rory Becker
sumber
1
Versi Excel yang mana? Dan apakah itu sepenuhnya ditambal?
harrymc
Saya telah melihat ini pada tahun 2002 dan 2007. Saya tidak yakin tentang 2007, tapi saya cukup yakin tahun 2002 sepenuhnya mutakhir
Rory Becker
Bisakah Anda memberikan tautan ke CSV? Atau versi pengurangan yang menunjukkan masalah?
Josh Comley
Menambahkan contoh data di atas
Rory Becker

Jawaban:

13

Saya baru saja mencoba tes cepat yang mereplikasi masalah Anda.

Saya membuat CSV 1 baris di Word (yang menggunakan kutipan pintar) sebagai test.csv "123", "4,5,6" dan dibuka di Excel seperti yang Anda gambarkan.

Coba ganti "dan" dengan "


Setelah bermain dengan sampel Anda, saya perhatikan bahwa Excel tidak suka spasi di antara bidang

misalnya bukannya

"20051", "", "2009 Sep 30 02:53:23", ...

kamu ingin

"20051","","2009 Sep 30 02:53:23",...

pengganti Ekspresi Reguler yang layak harus dapat menanganinya

Find:    |("[^"]*",) |
Replace: |\1|

(karakter pipa hanya untuk isyarat visual)

Atau cukup modifikasi kode .Net jika Anda memiliki akses ;-)

Selain itu, seperti yang ditunjukkan Arjan , Anda mungkin juga perlu mengonversi file dari UTF-8 ke ANSI untuk mencegah sel A1 mengandung BOM dan qoute sekitarnya.

Saya telah menemukan Catch 22 dari CSV enkode ANSI yang tidak menangani karakter internasional dan CSF enkode UTF tidak ditangani dengan layak oleh Excel; dan tidak menemukan solusi saat mempertahankan CSV. Jika diperlukan dukungan karakter internasional, format XML (atau XLS asli) tampaknya satu-satunya cara untuk melakukannya — dengan biaya kesederhanaan.

Komunitas
sumber
Tidak ada kutipan pintar yang terlibat. File ini dibuat untuk menggunakan tanda kutip std dari program yang ditulis dalam. Net.
Rory Becker
Saya tidak bermaksud mengatakan bahwa file UTF-8 harus dikodekan secara berbeda. Tetapi ketika mengimpor UTF-8, maka memang orang harus memberi tahu Excel apa pengkodeannya. Dan UTF-8 tersembunyi di suatu tempat di bawah ini dalam daftar panjang pengkodean.
Arjan
Saya telah mengimpor banyak file CSV yang disandikan UTF-8. Saya perhatikan yakin jika mereka memiliki BOM.
Arjan
@lumbarious: Anda seorang STAR! Bekerja dengan sempurna ... Saya tidak percaya bahwa Excel tidak bisa menangani ini :(
Rory Becker
1
Yup, ternyata spasi antar bidang benar-benar mengacaukan Excel 2011. Menghapus spasi memperbaiki masalah dan juga membuat Excel tidak menyertakan tanda kutip sebagai bagian dari data. Dugaan saya adalah ada spesifikasi di suatu tempat yang menyatakan bahwa tanda kutip ganda hanya membatasi data jika mereka berbatasan langsung dengan koma.
Peter Gluck
8

Masalah ini telah mengganggu saya selama beberapa tahun. Saya baru saja menemukan solusinya dan itu disinggung dalam jawaban di atas tetapi tidak secara eksplisit dijabarkan.

Ini adalah ruang setelah koma!

Ini tidak diimpor ke excel;

HEADER1, HEADER2
"1,000", "2,000"

Sementara

HEADER1,HEADER2
"1,000","2,000"

Bekerja!

Mark Milbourne
sumber
2
Selamat Datang di Pengguna Super! Jawaban ini ditulis dengan cara yang bermanfaat dan jelas. Terima kasih atas kontribusi Anda dan kami harap Anda tetap di sini.
user1717828
YAAAS! Jawaban yang diterima memiliki jawaban nyata untuk pertanyaan yang dikubur tidak seperti jawaban ini. Op tidak menggunakan kutipan pintar.
dardub
2

Anda juga dapat mencoba CSVEd yang gratis.

Alan B
sumber
2

Ketika saya mencoba untuk membuka file ini, Excel benar-benar mengabaikan tanda kutip dan mengasumsikan bahwa mereka adalah bagian dari data. Karena itu ia membagi bidang yang mengandung koma menjadi beberapa kolom.

Jika Anda tidak sengaja menggunakan kutipan pintar seperti yang disarankan lumbarius , dan anggap Anda menggunakan Windows: itu mungkin karena pengaturan regional Anda. Ketika mengklik dua kali atau menggunakan File »Buka, maka Excel tidak meminta Anda untuk rincian, tetapi hanya menggunakan pengaturan ini.

Tetap saja, menjalankan fungsi impor secara manual (seperti yang Anda lakukan) seharusnya berhasil, jadi saya ragu mengubah pengaturan regional akan membantu ...

Arjan
sumber
Ini sepertinya lebih seperti komentar daripada jawaban ...
Metafaniel
Saran ini menyelesaikan masalah saya dengan tepat! Melakukan impor CSV (Data> Dari Teks / CSV) tidak berfungsi seperti yang diharapkan, tetapi jika saya baru saja melakukan File> Buka pada file CSV, itu berhasil. Kemudian saya bisa menyalin / menempelkan seluruh tabel ke buku kerja saya yang lain.
DITEMUKAN BELAS
1

Sudahkah Anda memeriksa penyandian karakter file Anda? Cobalah mengatur pengkodean karakter ke UTF-8.

Anda dapat menggunakan notepad2 untuk mengubah pengkodean karakter.

Josh Comley
sumber
Pengkodean dilaporkan oleh Notepad2 menjadi "UTF8 dengan tanda tangan"
Rory Becker
Kemudian, saat mengimpor, Anda perlu menggulir ke bawah dalam daftar penyandian. UTF-8 tersembunyi di suatu tempat rendah dalam daftar. (Tidak perlu menggunakan UTF-8 file CSV disandikan, tapi sebagai masukan Anda sudah adalah UTF-8 Anda memang perlu memberitahu Excel apa yang akan digunakan. Perhatikan bahwa kutipan-karakter yang normal akan dikodekan sama dalam ASCII, Barat dan UTF -8, tapi mungkin tanda tangan (Byte Order Mark) atau beberapa karakter lain lakukan mengacaukan)?
Arjan
@ Peter Mengapa mengubah tautan resmi ke Wikipedia? Itu tidak masuk akal sama sekali? Kami tidak ingin mengirim orang terlalu banyak, dan ini tentu saja tidak memerlukan suntingan - terutama pada kiriman yang berumur dua tahun.
slhck
1

Cukup tambahkan jawaban di sini: fokus pada SPACES setelah COMMAS di file CSV Anda. Excel tidak suka ini jika Anda mengutip kolom dalam data Anda.

Suka Excel (4 kolom data):

a, b, c, d

Tetapi tidak suka (3 kolom data):

a, "b, c", d

Itu suka (3 kolom data):

a,"b, c",d
DocOc
sumber
Saya baru saja menemukan masalah itu. Saya membenturkan kepala ke dinding sampai saya dapat catatan ini. Ini luar biasa. Saya menjalankan Excel 2017 dan kekonyolan itu masih ada ...
Albert Godfrind
1

Saya mengalami masalah ini hari ini dan juga menemukan solusi yang berhasil untuk saya.

Lingkungan / konteks saya: Saya memiliki halaman web dengan beberapa (formulir) pertanyaan yang berisi tanda kutip ganda dan koma. Baik pertanyaan maupun jawabannya dikeluarkan dari database dan ditulis ke file Excel untuk tujuan pelaporan.

Saya memiliki masalah yang sama dengan yang dijelaskan di atas: Pertanyaan-pertanyaan yang menyertakan tanda kutip ganda dan koma dipecah menjadi beberapa kolom di Excel.

Untuk tujuan saya, menggunakan dua tanda kutip sebagai ganti kutip ganda berhasil.

-> di situs web, dua kutipan tunggal terlihat seperti kutipan ganda untuk pengunjung situs

-> Dalam file Excel, sekali lagi, dua kutipan tunggal terlihat seperti kutipan ganda untuk pengguna yang melihat data laporan

Saya menyadari bahwa solusi ini tidak akan berhasil untuk semua orang, tetapi mudah-mudahan ini akan membantu seseorang.

Gerald
sumber
1

Saya dapat melakukan ini menggunakan:

a,b,c,"=""(1,2,3)"""

yang memberikan empat kolom:

|  a  |   b   |   c   |   (1,2,3)   |
johnb
sumber
0

Cara lain untuk melakukannya:

  1. Buka file dalam LibreOffice atau OpenOffice Calc.
  2. Tetapkan opsi impor yang benar, seperti UTF-8, dipisahkan dengan koma, ...
  3. Simpan File sebagai ods atau xls
  4. Buka file baru di Excel.

Dengan cara ini, Anda dapat mengatur penyandian yang benar seperti UTF-8, yang mana banyak (semua?) Versi Excel tidak dapat menangani dengan benar tanpa BOM dan Anda tidak perlu khawatir tentang regex yang dapat mengganti beberapa teks di dalam bidang dan kamu tidak menyadarinya.

12431234123412341234123
sumber