Mengimpor CSV dengan jeda baris di Excel 2007

129

Saya sedang mengerjakan fitur untuk mengekspor hasil pencarian ke file CSV untuk dibuka di Excel. Salah satu bidang adalah bidang teks bebas, yang mungkin berisi pemisah baris, koma, kutipan, dll. Untuk mengatasi ini, saya telah membungkus bidang tersebut dalam tanda kutip ganda (").

Namun, ketika saya mengimpor data ke Excel 2007, mengatur pembatas yang sesuai, dan mengatur kualifikasi teks untuk menggandakan penawaran, jeda baris masih membuat catatan baru di jeda baris, di mana saya akan melihat seluruh bidang teks dalam sel tunggal.

Saya juga mencoba mengganti CR / LF (\ r \ n) hanya dengan CR (\ r), dan sekali lagi hanya dengan LF (\ n), tetapi tidak berhasil.

Adakah orang lain yang mengalami perilaku ini, dan jika demikian, bagaimana Anda memperbaikinya?

TIA,
-J

EDIT:
Ini file cepat yang saya tulis dengan tangan untuk menduplikasi masalah.

ID, Nama, Deskripsi
"12345", "Smith, Joe", "Hai.
Nama saya Joe."

Ketika saya mengimpor ini ke Excel 2007, saya berakhir dengan baris tajuk, dan dua catatan. Perhatikan bahwa koma dalam "Smith, Joe" sedang ditangani dengan benar. Hanya jeda baris yang menyebabkan masalah.

jeremyalan
sumber
Saya telah melihat file CSV di Notepad ++, dan semuanya tampak benar. Saya memiliki bidang lain dengan koma, dan itu sedang diimpor dengan benar. Hanya jeda baris yang menyebabkan masalah.
jeremyalan
4
Saya memiliki masalah dengan file .csv UTF8 dengan data multi-line dan unggul. Saya akhirnya hanya mengunggah file ke Google Documents, membukanya ke lembar google, lalu mengunduh sebagai file .xls. Bekerja dengan baik untuk saya dengan cara ini.
creuzerm

Jawaban:

53

Excel (setidaknya di Office 2007 pada XP) dapat berperilaku berbeda tergantung pada apakah file CSV diimpor dengan membukanya dari menu File-> Open atau dengan mengklik dua kali pada file di Explorer.

Saya memiliki file CSV yang ada dalam pengkodean UTF-8 dan berisi baris baru di beberapa sel. Jika saya membuka file ini dari menu File-> Open Excel, wizard "import CSV" muncul dan file tidak dapat diimpor dengan benar: baris baru memulai baris baru bahkan ketika dikutip. Jika saya membuka file ini dengan mengklik dua kali di jendela Explorer, maka itu dibuka dengan benar tanpa campur tangan wizard.

J Ashley
sumber
1
Adakah yang tahu cara mendapatkan pengaturan yang sama dengan mengklik ganda?
Michiel Thalen
7
Itu benar! Aneh sekali.
David
5
Jika Anda menggunakan pengaturan wilayah jerman, Anda harus menggunakan titik koma (;) alih-alih koma (,) di csv Anda untuk klik dua kali agar berfungsi ...
user1859022
3
itu tidak bekerja untuk saya. Dengan "," sebagai pembatas, ia membuka semuanya dalam satu kolom dengan klik dua kali. Dengan ";" sebagai pembatas itu diimpor dengan benar kecuali untuk bidang teks multi-baris, yang diimpor sebagai beberapa catatan. Saya punya Excel 2010
Andrej Adamenko
2
@ user1859022 Saya gandakan untuk lokal Hongaria. sebenarnya setiap lokal yang menggunakan koma sebagai pemisah desimal harus menggunakan titik koma sebagai pemisah bidang untuk klik dua kali csv terbuka untuk berfungsi dengan baik
robotik
42

Tidak ada solusi yang disarankan bekerja untuk saya.

Apa yang sebenarnya berfungsi (dengan penyandian apa saja):

Salin / tempel data dari file csv (buka di Editor), lalu lakukan "teks dalam kolom" -> tidak berfungsi, oke.

Buka tab berikutnya dan salin / tempel lagi (hal yang sama dengan apa yang sudah Anda dapatkan di clipboard) -> otomatis berfungsi sekarang.

sdplus
sumber
2
Dalam kasus saya ini berhasil, dengan cara: itu benar menciutkan CSV ke catatan tunggal tetapi menghapus semua data dalam bidang melewati baris baru.
Lilienthal
1
Ini berhasil, ada ide mengapa tidak berfungsi saat mengimpor csv dari excel?
Rafael Sisto
1
Saya dapat mengonfirmasi bahwa ini berfungsi, Anda bahkan dapat menempelkan lebih banyak data dalam lembar berbeda tanpa mengulangi perintah "teks ke kolom". Ini berguna jika Anda perlu mengimpor beberapa file.
Alex
1
Mengapa ini berfungsi tetapi tidak membuka CSV atau menambahkannya sebagai Data Teks dengan semua pengaturan yang tepat tidak berfungsi? Terima kasih atas tipnya. Tim Salin / Tempel perlu berbicara dengan tim impor data!
alexGIS
2
Sial ini benar-benar berfungsi. dan itu agak masuk akal mengapa. Saat membuat "teks ke kolom" Excel mengingat pengaturan dan itu akan otomatis berubah. Ketika Anda memiliki teks yang sudah dipisahkan menjadi baris-baris itu akan terlihat baris demi baris dan mengabaikan baris baru. Saya berpikir bahwa MS harus menyertakan kotak centang apakah menyimpan perilaku atau memindai ulang data. Saya tidak peduli, ... jika bekerja freaking
user853710
28

Jika Anda melakukan ini secara manual, unduh LibreOffice dan gunakan LibreOffice Calc untuk mengimpor CSV Anda. Ini melakukan pekerjaan yang jauh lebih baik dari hal-hal seperti ini daripada versi Excel yang pernah saya coba, dan dapat menyimpan ke XLS atau XLSX seperti yang diperlukan jika Anda perlu mentransfer ke Excel setelahnya.

Tetapi jika Anda terjebak dengan Excel dan membutuhkan perbaikan yang lebih baik, sepertinya ada cara. Tampaknya tergantung lokal (yang tampaknya idiot, menurut pendapat saya yang sederhana). Saya tidak punya Excel 2007, tapi saya punya Excel 2010, dan contoh yang diberikan:

ID,Name,Description
"12345","Smith, Joe","Hey.
My name is Joe."

tidak bekerja Saya menulisnya di Notepad dan memilih Simpan sebagai ..., dan di sebelah tombol Simpan Anda dapat memilih penyandian. Saya memilih UTF-8 seperti yang disarankan, tetapi tidak berhasil. Mengubah koma ke titik koma berhasil untuk saya. Saya tidak mengubah apa pun, dan itu hanya berhasil. Jadi saya mengubah contoh agar terlihat seperti ini, dan memilih pengkodean UTF-8 saat menyimpan dalam Notepad:

ID;Name;Description
"12345";"Smith, Joe";"Hey.
My name is Joe."

Tapi ada tangkapan! Satu-satunya cara kerjanya adalah jika Anda mengklik dua kali file CSV untuk membukanya di Excel. Jika saya mencoba mengimpor data dari teks dan memilih CSV ini, maka masih gagal pada baris baru yang dikutip.

Tapi ada tangkapan lain ! Pemisah bidang kerja (koma dalam contoh asli, titik koma dalam kasus saya) tampaknya bergantung pada Pengaturan Regional sistem (ditetapkan di bawah Panel Kontrol -> Wilayah dan Bahasa). Di Norwegia, koma adalah pemisah desimal. Excel tampaknya menghindari karakter ini dan lebih memilih titik koma sebagai gantinya. Saya memiliki akses ke komputer lain yang diatur ke Inggris UK lokal, dan di komputer itu, contoh pertama dengan pemisah koma berfungsi dengan baik (hanya pada klik dua kali), dan yang dengan titik koma sebenarnya gagal! Begitu banyak untuk interoperabilitas. Jika Anda ingin menerbitkan CSV online ini dan pengguna mungkin memiliki Excel, saya kira Anda harus menerbitkan kedua versi dan menyarankan agar orang memeriksa file mana yang memberikan jumlah baris yang benar.

Jadi semua detail yang saya dapat kumpulkan untuk membuatnya bekerja adalah:

  1. File harus disimpan sebagai UTF-8 dengan BOM, yang dilakukan Notepad ketika Anda memilih UTF-8. Saya mencoba UTF-8 tanpa BOM (dapat diaktifkan dengan mudah di Notepad ++), tetapi kemudian mengklik dua kali dokumen gagal.
  2. Anda harus menggunakan koma atau pemisah titik koma, tetapi bukan pemisah desimal di Pengaturan Regional Anda. Mungkin karakter lain berfungsi, tetapi saya tidak tahu yang mana.
  3. Anda harus mengutip bidang yang berisi baris baru dengan karakter ".
  4. Saya telah menggunakan ujung baris Windows (\ r \ n) baik di bidang teks dan sebagai pemisah rekaman, yang berfungsi.
  5. Anda harus mengklik dua kali file untuk membukanya, mengimpor data dari teks tidak berfungsi.

Semoga ini bisa membantu seseorang.

ketil
sumber
Juga, trik yang disebutkan oleh @sdplus tampaknya berhasil! Saya pikir yang terjadi adalah ketika Anda pertama kali menempel dan melakukan manuver "teks ke kolom", Anda mengonfigurasi kutipan dan pemisah bidang di Excel. Kali kedua Anda menempel, menggunakan konfigurasi ini, dan membagi data dengan benar ke dalam kolom berdasarkan konfigurasi. Tetapi ini tampaknya pendekatan yang sangat manual.
ketil
ya, setiap kali Anda Mengimpor Teks atau melakukan Teks ke Kolom, Anda mengkalibrasi ulang cara kerja salin / tempel di sesi yang diberikan. itu bahkan diterapkan ke buku kerja baru yang Anda buat, sampai Anda menutup Excel. itu bisa membuat frustasi juga. setelah Anda menggunakan pemisah yang diberikan untuk impor, itu akan memisahkan teks Anda dengan itu bahkan jika Anda hanya ingin menempelkan kalimat dalam sel. Anda harus mengulang impor dengan tab sebagai pemisah, atau restart Excel untuk menghentikannya.
robotik
Trik Anda sepertinya benar-benar berhasil. Tapi sepertinya titik koma tidak ada hubungannya dengan solusi. Masalahnya adalah, Excel memperlakukan file CSV secara berbeda, tergantung pada pengaturan regional. Saya dari Jerman, dan bagi saya file CSV dari Excel selalu memiliki titik koma alih-alih koma (alasannya adalah, bahwa di Jerman pemisah desimal adalah koma bukan titik). Solusi nyata tampaknya, bahwa Excel memuat file CSV yang sama sekali berbeda dari semua file teks lainnya. Jadi file CSV yang berisi jeda baris di antara kutipan tampaknya berfungsi. Semua file teks lainnya tidak.
Martini Bianco
@ Martini, ya, saya memiliki Norwegian Excel dan kami juga menggunakan koma sebagai pemisah desimal, jadi saya sudah menyebutkan bagaimana ini tergantung pada pengaturan regional (meskipun saya menyebutnya sebagai lokal). Mungkin saya harus menyusun ulang untuk kejelasan.
ketil
Ini adalah jawaban untuk semua orang di daerah di mana koma adalah pemisah desimal. Perhatikan bahwa untuk wilayah ini, Excel juga menggunakan tanda titik koma sebagai pemisah argumen rumus ( =FOO(1;2)bukan =FOO(1,2)), tetapi jelas tidak benar bahwa Excel menerapkan ini ke parser format file (program mana yang mem-parsing format file standar tergantung pada lokal ??? )
leemes
25

Saya akhirnya menemukan masalahnya!

Ternyata kami menulis file menggunakan Unicode encoding, bukan ASCII atau UTF-8. Mengubah pengkodean pada FileStream tampaknya menyelesaikan masalah.

Terima kasih semuanya atas semua saran Anda!

jeremyalan
sumber
29
Pengkodean ASCII tampaknya tidak memperbaiki masalah bagi saya (pada MacOS), dan saya tidak memiliki ruang terkemuka dan bidang saya dikutip. Doc yang sama persis mengimpor baik di Google Documents. Sangat frustasi. BTW, tidak ada yang namanya file teks yang dikodekan "Unicode". Itu harus menjadi salah satu implementasi Unicode (UTF-8, UTF-16, UTF-32, dll.)
Ben
11
Terima kasih atas solusinya. Saya masih penasaran apa jawabannya, jadi saya mencoba membuat csv dengan jeda baris di Excel dan melihat apa yang disimpannya. Saya ternyata Excel hanya menggunakan umpan baris untuk baris baru dalam sel. Jika saya mencoba membuat csv yang sama di Notepad, ia akan menggunakan feed baris + carriage return untuk line break. Jadi untuk jeda baris dalam satu sel, pastikan hanya menggunakan umpan baris (LF atau \ n) dan bukan carriage return (CR atau \ r). Excel memang menggunakan keduanya untuk mengakhiri satu baris.
xr280xr
1
Pengkodean ASCII juga tidak memperbaiki masalah bagi saya - Excel 2000, Windows 7.
ChrisJJ
1
Untuk OS X di Macintosh, simpan sebagai "Windows Comma Separated (csv)". Ini menambahkan baris baru, bukan garis putus. Itu akan terdaftar dalam menu drop down untuk format di bawah "Format Khusus".
taco
Pengodean Unicode mana yang harus digunakan (UTF-8, UTF-16)?
Andrej Adamenko
7

Jawaban singkat

Hapus karakter baris baru / umpan baris ( \ndengan Notepad ++). Excel masih akan mengenali karakter carriage return ( \r) untuk memisahkan catatan.

Jawaban panjang

Seperti disebutkan, karakter baris baru didukung di dalam bidang CSV tetapi Excel tidak selalu menanganinya dengan anggun. Saya menghadapi masalah serupa dengan CSV pihak ketiga yang mungkin memiliki masalah penyandian tetapi tidak membaik dengan perubahan penyandian.

Apa yang berhasil bagi saya adalah menghapus semua karakter baris baru ( \n). Ini memiliki efek kolaps bidang ke satu rekaman dengan asumsi bahwa catatan Anda dipisahkan oleh kombinasi carriage return dan baris baru (CR / LF). Excel kemudian akan mengimpor file dengan benar dan mengenali catatan baru dengan carriage return.

Jelas solusi yang lebih bersih adalah dengan terlebih dahulu mengganti baris baru ( \r\n) dengan kombinasi karakter sementara, mengganti baris baru ( \n) dengan karakter pilihan Anda yang terpisah (misalnya koma dalam file titik koma) dan kemudian mengganti karakter sementara dengan baris baru yang benar lagi.

Lilienthal
sumber
1
Saya memiliki situasi yang berlawanan: \nantara garis dan \r\nnilai-nilai di dalam. Baru saja menghapus yang terakhir di Notepad ++.
Jarang
5

+1 pada komentar J Ashley. Saya mengalami masalah ini juga. Ternyata Excel membutuhkan:

  • Karakter baris baru ("\ n") dalam string yang dikutip

  • Pengembalian carriage dan baris baru di antara setiap baris.

Misalnya "Tes", "Item multiline \ n item multiline" \ r \ n "Test2", "Item multiline \ n item multiline" \ r \ n

Saya menggunakan notepad ++ untuk membatasi setiap baris dengan benar dan hanya menggunakan baris baru dalam string. Menemukan ini dengan membuat entri multiline dalam dokumen excel kosong dan membuka csv di notepad ++.

Iventio
sumber
itu bekerja untuk saya dengan hanya karakter baris baru sebagai item multiline dan pemisah baris, begitu saya mengatur pemisah bidang sesuai dengan lokal saya
robotik
4

Jika bidang berisi ruang utama, Excel mengabaikan kuotasi ganda sebagai kualifikasi teks. Solusinya adalah menghilangkan spasi terdepan antara koma (pemisah bidang) dan kutipan ganda. Sebagai contoh:

Patah:
Nama, Judul, Deskripsi
"John", "Mr.", "Deskripsi detail saya"

Bekerja:
Nama, Judul, Deskripsi
"John", "Mr.", "Deskripsi detail saya"

Jeremy
sumber
2
Saya setuju, bagaimanapun, saya tidak memiliki ruang memimpin dalam output saya. Ada ide?
jeremyalan
kita perlu garis rusak :(
Luke
4

Gunakan Google Sheets dan impor file CSV.

Kemudian Anda bisa mengekspornya untuk digunakan di Excel

Mazzy
sumber
1
Tip yang bagus! Ini adalah metode konversi yang paling nyaman jika Anda setuju dengan mengunggah CSV ke layanan pihak ketiga (yaitu data yang tidak rahasia). Perhatikan bahwa Anda mungkin harus menetapkan pembatas secara manual saat mengimpor. Dan Anda mungkin perlu menyesuaikan ukuran sel dalam file Excel yang dihasilkan agar dapat ditampilkan dengan benar.
m000
Juga berfungsi dengan Excel di Office 365 di browser. Saya tidak bisa membuka CSV dengan benar dengan jeda baris di dalam sel dengan aplikasi desktop Excel (mencoba sebagian besar saran dari halaman ini), tetapi Excel di office.com dapat dengan benar membukanya.
georg w.
3

Jika ada yang tersandung di utas ini dan sedang mencari jawaban yang pasti di sini (kredit untuk orang yang menyebutkan LibreOffice:

1) Instal LibreOffice 2) Buka Calc dan impor file 3) File txt saya memisahkan bidang-bidangnya, dan bidang karakter dilampirkan dalam "4) simpan sebagai file ODS 5) Buka file ODS di Excel 6) Simpan sebagai .xls (x) 7) Selesai 8) Ini bekerja dengan baik untuk saya dan menyelamatkan saya BIGTIME!

Rock Rico
sumber
3
tidak perlu menyimpan ODS, LibreOffice dapat menyimpan xls (x) secara asli
robotik
2

Tempel ke Notepad ++, pilih Encoding> Encode di ANSI, salin sekali lagi dan tempel ke Excel :)

Aaron Dake
sumber
2

Saya punya masalah serupa. Saya punya beberapa data twitter di MySQL. Data memiliki Umpan baris (LF atau \ n) dengan dalam data. Saya memiliki persyaratan untuk mengekspor data MySQL ke excel. LF mengacaukan impor file csv saya. Jadi saya melakukan yang berikut -

1. From MySQL exported to CSV with Record separator as CRLF
2. Opened the data in notepad++ 
3. Replaced CRLF (\r\n) with some string I am not expecting in the Data. I used ###~###! as replacement of CRLF
4. Replaced LF (\n) with Space
5. Replaced ###~###! with \r\n, so my record separator are back.
6. Saved and then imported into Excel

CATATAN- Saat mengganti CRLF atau LF jangan lupa untuk Memeriksa yang Disukai (\ n, \ r, \ t ... Kotak Centang [lihat bagian kiri bawah Kotak Dialog)

Dibs
sumber
2

Pengalaman saya dengan Excel 2010 di WinXP dengan pengaturan regional Prancis

  • pemisah csv Anda yang diimpor harus sesuai dengan pemisah daftar pengaturan regional Anda (; dalam kasus saya)
  • Anda harus mengklik dua kali pada file dari penjelajah. jangan membukanya dari Excel
pingouinshark
sumber
1

Excel sangat rusak ketika berhadapan dengan CSV. LibreOffice melakukan pekerjaan yang jauh lebih baik. Jadi, saya menemukan bahwa:

  • File harus dikodekan dalam UTF-8 dengan BOM, jadi pertimbangkan ini untuk semua poin di bawah ini
  • Sejauh ini, hasil terbaik dicapai dengan membukanya dari File Explorer
  • Jika Anda membukanya dari dalam Excel ada dua hasil yang mungkin:
    • Jika hanya memiliki karakter ASCII, kemungkinan besar akan berfungsi
    • Jika memiliki karakter non-ASCII, itu akan mengacaukan jeda baris Anda
  • Tampaknya sangat tergantung pada pemisah desimal yang dikonfigurasi dalam pengaturan regional OS, jadi Anda harus memilih yang tepat
  • Saya berani bertaruh bahwa itu mungkin berperilaku berbeda tergantung pada OS dan versi Office
tidak terdefinisi
sumber
Anda menyatakan LibreOffice adalah penebak yang lebih baik daripada Excel, bukan? Excel mengajukan semua pertanyaan yang tepat saat mengimpor file teks, kecuali Anda mengatakannya untuk menebak.
Tom Blodget
1
Terima kasih! Ini membantu saya untuk mengubah CSV saya dari "UTF-8 tanpa BOM" ke "UTF-8 dengan BOM" (hanya sederhana "UTF-8" di menu) oleh Notepad ++. Lalu saya baru saja membukanya dari Explorer dan Excel menunjukkannya dengan cara yang benar dengan simbol yang benar dan garis yang benar di dalam sel. Ketika saya membukanya secara default "UTF-8 tanpa BOM" pengkodean dari Explorer Excel impor baris rusak dengan benar, tetapi menampilkan simbol non-latin dengan cara yang salah. Jika saya membukanya dari Excel, itu menunjukkan pengkodean dengan cara yang benar, tetapi tidak mengatasi jeda baris.
Sergey Beloglazov
1

Gambaran

Hampir 10 tahun setelah posting asli, Excel belum membaik dalam mengimpor file CSV. Namun, saya menemukan bahwa jauh lebih baik dalam mengimpor tabel HTML. Jadi, seseorang dapat menggunakan Python untuk mengonversi CSV ke HTML dan kemudian mengimpor HTML yang dihasilkan ke Excel.

Keuntungan dari pendekatan ini adalah: (a) ia bekerja dengan andal, (b) Anda tidak perlu mengirim data Anda ke layanan pihak ketiga (mis. Google sheets), (c) tidak diperlukan instalasi "gemuk" tambahan (LibreOffice, Angka dll.) Untuk sebagian besar pengguna, (d) tingkat lebih tinggi daripada campur tangan dengan karakter CR / LF dan penanda BOM, (e) tidak perlu mengutak-atik pengaturan lokal.

Langkah

Langkah-langkah berikut ini dapat dijalankan pada bash-like shell selama Python 3 diinstal. Meskipun Python dapat digunakan untuk membaca CSV secara langsung, csvkit digunakan untuk melakukan konversi antara ke JSON. Ini memungkinkan kita untuk menghindari keharusan berurusan dengan seluk-beluk CSV dalam kode Python kita.

Pertama, simpan skrip berikut sebagai json2html.py. Script membaca file JSON dari stdin dan membuangnya sebagai tabel HTML:

#!/usr/bin/env python3
import sys, json, html

if __name__ == '__main__':
    header_emitted = False
    make_th = lambda s: "<th>%s</th>" % (html.escape(s if s else ""))
    make_td = lambda s: "<td>%s</td>" % (html.escape(s if s else ""))
    make_tr = lambda l, make_cell: "<tr>%s</tr>" % ( "".join([make_cell(v) for v in l]) )
    print("<html><body>\n<table>")
    for line in json.load(sys.stdin):
        lk, lv = zip(*line.items())
        if not header_emitted:
            print(make_tr(lk, make_th))
            header_emitted = True
        print(make_tr(lv, make_td))
    print("</table\n</body></html>")

Kemudian, instal csvkit di lingkungan virtual dan gunakan csvjsonuntuk mengumpankan file input ke skrip kami. Sebaiknya nonaktifkan menebak jenis sel dengan -Iargumen:

$ virtualenv -p python3 pyenv
$ . ./pyenv/bin/activate
$ pip install csvkit
$ csvjson -I input.csv | python3 json2html.py > output.html

Sekarang output.htmldapat diimpor dalam Excel. Pemutusan garis dalam sel akan dipertahankan.

Secara opsional, Anda mungkin ingin membersihkan lingkungan virtual Python Anda:

$ deactivate
$ rm -rf pyenv
m000
sumber
1

Ini untuk Excel 2016:

Baru saja mengalami masalah yang sama dengan jeda baris di dalam file csv dengan Excel Wizard.

Setelah itu saya mencobanya dengan Fitur "Permintaan Baru": Data -> Permintaan Baru -> Dari File -> Dari CSV -> Pilih File -> Impor -> Muat

Itu bekerja dengan sempurna dan solusi yang sangat cepat untuk Anda semua yang memiliki masalah yang sama.

SaSH_17
sumber
0

Apa yang baru saja bekerja untuk saya, mengimpor ke Excel secara langsung asalkan impor dilakukan sebagai format teks dan bukan sebagai format csv. M /

Martin
sumber
0

cukup buat lembar baru dengan sel dengan linebreak, simpan ke csv lalu buka dengan editor yang dapat menunjukkan karakter garis akhir (seperti notepad ++). Dengan melakukan itu, Anda akan melihat bahwa linebreak dalam sel dikodekan dengan LF sedangkan ujung "nyata" adalah kode dengan CR LF. Voa, sekarang Anda tahu cara membuat file csv "benar" untuk excel.

pembusukan
sumber
0

Saya juga punya masalah ini: mis., File csv (dibatasi koma, string kutipan ganda dibatasi) dengan LF dalam string yang dikutip. Ini adalah file Square yang diunduh. Saya melakukan impor data tetapi alih-alih mengimpor sebagai file teks, diimpor sebagai "dari HTML". Kali ini mengabaikan LF di string yang dikutip.

pengguna3861859
sumber
0

Ini berfungsi pada Mac, menggunakan csv dan membuka file dalam Excel.

Menggunakan python untuk menulis file csv.

data = '"baris pertama sel a1 baris ke-2 di sel a1 baris ke-3 di sel a1", "sel b1", "baris 1 di sel c1 baris ke-2 di sel c1" \ n "baris pertama di sel sel a2 "\ n '

file.write (data)

2003G35
sumber
0

Di MacOS coba gunakan Angka

Jika Anda memiliki akses ke Mac OS, saya telah menemukan bahwa Numbers spreadsheet Apple melakukan pekerjaan yang baik untuk membuka file CSV multi-line yang kompleks yang tidak dapat ditangani oleh Excel. Buka saja .csvdengan Angka dan kemudian ekspor ke Excel.

Tim
sumber
0

Dalam kasus saya membuka CSV di notepad ++ dan menambahkan SEP=","sebagai baris pertama memungkinkan saya membuka CSV dengan jeda baris dan utf-8 di Excel tanpa masalah

adax2000
sumber
0

Ganti pemisah dengan TAB (\ t) alih-alih koma (,). Kemudian buka file di editor Anda (Notepad dll), salin konten dari sana, lalu rekatkan dalam file Excel.

Ionut
sumber
Coba ini pada file besar :)
chukko
-1

Jeda baris di dalam tanda kutip ganda baik-baik saja menurut standar CSV. Penguraian jeda baris di Excel tergantung pada pengaturan OS pemisah daftar:

  1. Windows: Anda perlu mengatur pemisah daftar menjadi koma (Wilayah dan bahasa »Format» Tingkat Lanjut) Sumber: /superuser/238944/how-to-force-excel-to-open-csv-files- dengan-data-diatur-dalam-kolom # answer-633302

  2. Mac: Perlu mengubah wilayah ke AS (kemudian secara manual mengubah kembali pengaturan lain ke preferensi Anda) Sumber: https://answers.microsoft.com/en-us/mac/forum/macoffice2016-macexcel/line-separator-comma -semicolon-in-excel-2016-for / 7db1b1a0-0300-44ba-ab9b-35d1c40159c6 (lihat jawaban NewmanLee)

Jangan lupa untuk menutup Excel sepenuhnya sebelum mencoba lagi.

Saya telah berhasil mereplikasi masalah ini dan dapat memperbaikinya menggunakan hal di atas di Max dan Windows.

David Avikasis
sumber
Saya pikir ini tidak berhasil. Saya mengekspor CSV dengan jeda baris di sel dari Excel sendiri. Karena lokal tidak berubah, Excel seharusnya dapat memuatnya dengan benar. Tetapi tidak bisa. Itu masih mengacaukan dengan jeda baris dalam sel.
m000