Збереження файлу у форматі CSV у Excel завжди видаляє специфікацію


15

Я намагався знайти розумне рішення / пояснення (безуспішно), щоб з'ясувати, чому за замовчуванням Excel видаляє специфікацію під час збереження файлу у тип CSV.

Прошу вибачити мене, якщо ви знайдете цей дублікат цього питання. Це обробляє читання файлів CSV за допомогою не-ASCII-кодування, але не охоплює збереження файлу назад (що є найбільшою проблемою).

Ось моє поточне становище (яке я збираюся збирати є поширеним серед локалізованого програмного забезпечення, що стосується символів Unicode та формату CSV):

  • Ми експортуємо дані до формату CSV за допомогою UTF-16LE, забезпечуючи встановлення специфікації (0xFFFE). Ми перевіряємо після того, як файл згенерований редактором Hex, щоб переконатися, що його було встановлено правильно.

  • Відкрийте файл в Excel (для цього прикладу ми експортуємо японські символи) і засвідчіть, що Excel обробляє завантаження файлу з правильним кодуванням.

  • Спроби зберегти цей файл підкажуть вам попереджувальне повідомлення про те, що файл може містити функції, які можуть не бути сумісними з кодуванням Unicode, але запитує, чи хочете ви зберегти їх.

  • Якщо ви оберете діалогове вікно "Зберегти як", він негайно попросить зберегти файл як "Unicode Text", а не CSV. Якщо ви виберете розширення "CSV" і збережете файл, він видаляє специфікацію (очевидно разом з усіма японськими символами).

Чому це станеться? Чи існує рішення цієї проблеми, чи це відома "помилка" / обмеження Excel?

Додатково (як сторона проблема) видається, що Excel, завантажуючи UTF-16LE закодовані файли CSV, використовує лише роздільники TAB. Знову ж таки, це ще одне відоме "помилка" / обмеження Excel?

Відповіді:


6

Немає ввічливих відповідей на запитання форми "Чому Excel робить X?".

Чому ви просто не прийняли "Зберегти як Unicode Text" як стандартний формат передачі? Excel Зберегти як забезпечує специфікацію, використовує TAB як роздільник, цитує поля так само, як CSV ...

До речі, ви не "вибираєте розширення CSV". Ви маєте два варіанти - формат і розширення. Спробуйте зберегти як unicode текст у полі "Зберегти як тип" і вручну змініть розширення у полі "Ім'я файлу" на "csv". Потім вийдіть з Excel і двічі клацніть на імені файлу в провіднику Windows. Відкривається штраф. Спробуй це.

Оновлення для обговорення коментарів OP :

  • "Зберегти як текст Unicode" (у Excel 2007) завжди зберігатиме ваш файл як розширення тексту (я не можу говорити за попередні або новіші версії). Це ідея "Зберегти як тип" ...

=> Будь ласка, уважно прочитайте те, що я написав вище, і спробуйте його для себе. Він завжди зберігатиме ваш файл з розширенням TXT, якщо ви не перевизначите : вилучіть його txtу полі "Ім'я файлу" та введіть csv.

  • Щоб уточнити ваш "Excel Зберегти, щоб забезпечити наявність специфікації", це неправильно.

=> "Зберегти як текст Unicode " гарантує наявність специфікації UTF-16LE у передній частині файлу. Спробуйте і подивіться.

  • Саме тому я задав питання в першу чергу! Якщо я відкрию файл формату CSV, який містить специфікацію, щоб вказати файл кодування UFT-16LE і змінити цей файл за допомогою Excel, я очікую, коли я збережу цей файл, який кодування залишається в такті ...

=> і ваші очікування не виконані, оскільки Excel не зберігає жодної інформації про вхідні файли CSV. Немає способу змусити його зробити те, що ви хочете зробити. Таким чином, ви або відмовитеся або спробуйте щось інше, як те, що я пропоную.

  • Що було б дуже приємно - це хтось, хто раніше переживав ці проблеми, надайте своє розуміння, будь ласка.

=> Я пережив ці проблеми, з китайськими даними і Excel 1997, років тому. Я, перш ніж відповісти на ваше запитання, перевірив Excel 2003 і Excel 2007, що Excel все ще погано поводиться. Я перевірив, що "зберегти як тип = Unicode текст, розширення = CSV" обхід дійсно працює. Я надав свої ідеї.


1
"Зберегти як текст Unicode" (у Excel 2007) завжди зберігатиме ваш файл як розширення тексту (я не можу говорити за попередні або новіші версії). Це ідея "Зберегти як тип" ... Щоб уточнити ваш "Excel Зберегти як забезпечити наявність специфікації", це неправильно. Саме тому я задав питання в першу чергу! Якщо я відкрию файл формату CSV, який містить специфікацію для вказівки мого файлу Кодування є UFT-16LE і змінювати цей файл за допомогою Excel, я очікую, коли я збережу цей файл, який кодування залишається в такті ... хто раніше переживав ці проблеми, надайте своє розуміння, будь ласка.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.