Excel'de CSV türünde bir dosyayı kaydetmek her zaman malzeme listesini kaldırır


15

Excel'in bir dosyayı CSV türüne kaydederken BOM'u kaldırırken neden varsayılan olduğunu bulmak için makul bir çözüm / açıklama (başarısız) bulmaya çalışıyorum.

Bunun bir kopyasını bulursanız lütfen beni affedin bu soru. Bu, ASCII olmayan kodlamayla CSV dosyalarını okumayı ele alır, ancak dosyayı geri kaydetmeyi kapsamaz (en büyük sorunun bulunduğu yer).

İşte şu anki durumum (toplayacağım, Unicode karakterleri ve CSV formatı ile ilgili yerelleştirilmiş yazılımlar arasında yaygın):

  • Malzeme listesinin (0xFFFE) ayarlandığından emin olarak UTF-16LE kullanarak verileri bir CSV formatına dışa aktarıyoruz. Dosyanın doğru ayarlandığından emin olmak için bir Hex düzenleyiciyle oluşturulduktan sonra doğrularız.

  • Dosyayı Excel'de açın (bu örnekte Japonca karakterleri dışa aktarıyoruz) ve Excel'in dosyayı doğru kodlamayla yüklemeyi ele aldığına tanık olun.

  • Bu dosyayı kaydetmeyi denemek, dosyanın Unicode kodlamasıyla uyumlu olmayan, ancak yine de kaydetmek isteyip istemediğinizi soran özellikler içerdiğini belirten bir uyarı mesajı verir.

  • Farklı Kaydet iletişim kutusunu seçerseniz, dosyayı hemen CSV yerine "Unicode Metin" olarak kaydetmenizi ister. "CSV" uzantısını seçip dosyayı kaydederseniz, malzeme listesini kaldırır (açıkçası tüm Japonca karakterlerle birlikte).

Bu neden oldu? Bu soruna bir çözüm var mı, yoksa bu bilinen bir 'hata' / Excel'in sınırlandırılması mı?

Ek olarak (bir yan sorun olarak), UTF-16LE kodlu CSV dosyalarını yüklerken Excel'in yalnızca TAB sınırlayıcıları kullandığı anlaşılıyor. Yine, bu başka bir bilinen 'hata' / Excel'in sınırlandırılması mı?

Yanıtlar:


6

"Excel neden X yapar?" Biçimindeki soruların kibar yanıtları yoktur.

Neden standart transfer biçiminiz olarak "Unicode Metin Olarak Kaydet" i seçmiyorsunuz? Excel Save as BOM olmasını sağlar, TAB'ı sınırlayıcı olarak kullanır, CSV gibi alanları işaretler ...

Bu arada, "CSV uzantısını seçmezsiniz". İKİ seçeneğiniz var - biçim ve uzantı. 'Kayıt türü' kutusuna unicode metin olarak kaydetmeyi deneyin ve 'Dosya adı' kutusundaki uzantıyı csv olarak el ile değiştirin. Ardından Excel'den çıkın ve Windows Gezgini'nde dosya adına çift tıklayın. İyi açılır. Dene.

OP'nin yorumlarını tartışmak için güncelleme :

  • "Unicode Metin Olarak Kaydet" (Excel 2007’de), dosyanızı her zaman Metin uzantısı olarak kaydeder (önceki veya daha yeni sürümler için konuşamıyorum). "Tür olarak kaydet" fikri budur ...

= & Gt; Lütfen yukarıda yazdıklarımı dikkatlice okuyun ve kendiniz için deneyin. Dosyanızı her zaman bir TXT uzantısı ile kaydeder geçersiz kılmadıkça : sil txt 'Dosya adı' kutusuna ve yazın csv.

  • "Excel'in bir malzeme listesi olduğundan emin olarak kaydet" ifadenizi netleştirmek için yanlıştır.

= & Gt; "Farklı kaydet Unicode metin "dosyanın önünde UTF-16LE BOM olmasını sağlar. Deneyin ve görün.

  • İlk başta bir soru sormamın nedeni bu! Dosyamı Kodlamanın UFT-16LE olduğunu belirtmek için bir malzeme listesi içeren CSV formatlı bir dosyayı açarsam ve bu dosyayı Excel ile değiştirirsem, bu dosyayı Kodlamanın inceliğini koruyacak şekilde kaydederken ...

= & Gt; Beklentileriniz karşılanmadı, çünkü Excel, girdi CSV dosyaları hakkında hiçbir bilgi tutmuyor. Yapmak istediğini yapmaya zorlamanın yolu yok. Yani ya pes ediyor ya da başka bir şeyi deniyorsun, önerdiğim gibi.

  • Gerçekten iyi olurdu, bu sorunları daha önce yaşamış biri, görüşünüzü bildiriniz

= & Gt; Bu problemleri yıllar önce Çin verileri ve Excel 1997 ile yaşadım. Sorunuzu yanıtlamadan önce Excel 2003 ve Excel 2007 ile Excel'in hala kötü davrandığını doğruladım. "Tip olarak kaydet = Unicode metin, extension = CSV" çözümünün gerçekten işe yaramadığını doğruladım. Fikirlerimi sağladım.


1
"Unicode Metin Olarak Kaydet" (Excel 2007’de) dosyanızı her zaman Metin uzantısı olarak kaydeder (önceki veya daha yeni sürümler için konuşamıyorum). "Tür olarak kaydet" fikri budur ... "Excel'in bir BOM olduğundan emin olun" ifadesini netleştirmek için yanlıştır. İlk başta bir soru sormamın nedeni bu! Dosyamı Kodlama'nın UFT-16LE olduğunu belirtmek için BOM içeren CSV formatlı bir dosyayı açarsam ve bu dosyayı Excel aracılığıyla değiştirirsem, Kodlamanın dokunuşta kaldığını kaydederken bu dosyayı kaydederken ... Bu sorunları daha önce kim yaşadıysa, görüşünüzü bildiriniz.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.