Impor menunjukkan pesan kesalahan "Nama kolom memiliki duplikat" tapi saya tidak punya duplikat.
Siapa yang bisa saya perbaiki ini?
"_type","sku","has_options","name","image","small_image","thumbnail","url_key","url_path","price","manufacturer","status","tax_class_id","visibility","description","short_description","gift_message_available","qty","min_qty","is_qty_decimal","backorders","min_sale_qty","max_sale_qty","is_in_stock","notify_stock_qty","manage_stock","qty_increments","enable_qty_increments"
"simple","1174407","0","BCI-15BK Tintenpatrone schwarz","","","","","","22.000","Canon","Enabled","none","Catalogue,Search","BCI-15BK Tintenpatrone schwarz, 2er-Pack, für I70 NSTintenpatronenOriginalML","BCI-15BK Tintenpatrone schwarz, 2er-Pack, für I70 NSTintenpatronenOriginalML","","0","","","0","1","","","","","","0"
Saya memastikan semua bidang saya juga ada di csv yang diekspor. Apakah saya melewatkan beberapa baris yang diperlukan? Saya mencoba untuk memeriksa tetapi halaman wiki ini dari 2012 memerlukan kolum yang bahkan tidak ada dalam file yang diekspor. Jadi saya tidak yakin apa saja yang dibutuhkan oleh kolumens.
Versi PHP adalah 5.2.17
ce-1.7.0.2
import
PiNomor
sumber
sumber
/admin/import
, bukan aliran data lama.Jawaban:
Pengecualian dengan pesan kesalahan yang Anda nyatakan dipicu tepat di satu tempat (kode sedikit terpotong untuk dibaca):
Ini berarti,
count(array_unique($this->_colNames))
harus tidak sama dengan$this->_colQuantity
The
$_colNames
Array diatur dalamMage_ImportExport_Model_Import_Adapter_Csv::rewind()
(yang disebut selama_init()
.Sekali lagi, kode ini sedikit dipotong untuk dibaca:
The
$_delimiter
diatur untuk,
, yang$_enclosure
diatur untuk"
.Untuk mencoba mereproduksi masalah, jika saya menyalin ekstrak CSV dari pertanyaan Anda ke file bernama test.csv dan jalankan kode berikut:
ini menghasilkan output sebagai berikut:
Ini berarti, file CSV Anda pada dasarnya baik-baik saja. Perbedaannya harus di tempat lain.
Melihat cara
array_unique
kerjanya, ada catatan bagaimana penanganan elemen array berubah di PHP 5.2.9: http://php.net/manual/en/function.array-unique.php#refsect1-function.array-unique -changelogUntuk mereproduksi masalah, saya menjalankan ulang skrip uji saya dengan
SORT_REGULAR
set opsi, tetapi ini masih memberikan hasil yang sama (yang logis, karena membaca file hanya dapat memberikan nilai string).Saat ini saya percaya perbedaannya harus pada file CSV yang Anda gunakan. Unix dan karakter baris baru Windows (
\n
dan\r\n
) keduanya dikenali olehfgetcsv()
perintah, tetapi karakter baris baru gaya MacOS (\r
) sebenarnya akan mengarah pada perilaku yang Anda alami.Saya tidak tahu apakah itu alasan Anda mengalami masalah, tetapi saya sarankan Anda memeriksa file CSV (lagi). Mungkin juga membantu jika Anda memberikan tautan unduhan di suatu tempat ke file yang tidak dimodifikasi (tidak ada pastebin), sehingga setiap karakter yang tidak dapat dicetak dipertahankan.
Mungkin juga membantu jika Anda memposting versi PHP yang Anda gunakan.
sumber
Saya menerima kesalahan ini ketika mengedit dan menyimpan menggunakan LibreOffice di Mac saya. Masalah diselesaikan dengan mengedit file menggunakan Google Drive sebagai gantinya, kemudian kesalahan hilang.
Saya menganggap itu karena akhir baris Mac.
sumber
Jika Anda memeriksa pengodean baris baru dan masih memiliki masalah, periksa kembali apakah Anda sebenarnya tidak memiliki nama kolom duplikat di CSV Anda. Di Excel Anda dapat dengan cepat menyorot duplikat dengan teknik ini:
Dalam kasus saya, saya telah menyeret formula (tanpa sengaja) ke baris header dan mengacaukan header saya.
sumber
Anda juga dapat menyimpan file .csv (menggunakan Mac) sebagai .csv yang diformat Windows. Ini akan memperbaiki pesan kesalahan kolom duplikat. Saya bekerja pada Mac dan ini adalah bagaimana saya mengatasi kesalahan impor ini. Semoga ini berhasil untuk Anda.
sumber