Я знаю, що це давнє питання, але проблема не скоро йде. CSV-файли легко генерувати з більшості мов програмування, досить невеликі, читабельні в людському стислі з простим текстовим редактором, і всюдисущі.
Проблема полягає не лише в датах у текстових полях, але й будь-що числове число перетворюється з тексту в цифри. Кілька прикладів, коли це проблематично:
- Поштові індекси
- номери телефонів
- державні ідентифікаційні номери
які іноді можуть починатися з одного або декількох нулів (0), які викидаються при перетворенні на числові. Або значення містить символи, які можна переплутати з математичними операторами (як у датах: /, -).
Два випадки , які я можу думати про те, що рішення «випереджаючи =», як уже згадувалося раніше, не може бути ідеальним є
- де файл може бути імпортований у програму, відмінну від MS Excel (на думку приходить функція злиття пошти MS Word),
- де читабельність людини може бути важливою.
Мій хак для вирішення цього питання
Якщо попередньо / додавати у значення нечисловий та / або символ без дати, значення буде розпізнано як текст і не перетворюється. Символ, що не друкується, було б добре, оскільки він не змінить відображене значення. Однак звичайний старий простірний символ (\ s, ASCII 32) не працює для цього, оскільки він рубається Excel і потім значення все ще перетворюється. Але є різні інші символи для друку та недрукарського простору, які добре працюватимуть. Найпростіше, проте, додавати (додавати після) простий символ вкладки (\ t, ASCII 9).
Переваги такого підходу:
- Доступний з клавіатури або з легким для запам'ятовування кодом ASCII (9),
- Це не заважає імпорту,
- Зазвичай це не турбує результати злиття пошти (залежно від макета шаблону, але зазвичай це просто додає широкий простір в кінці рядка). (Якщо це все-таки проблема, подивіться на інші символи, наприклад, простір нульової ширини (ZWSP, Unicode U + 200B)
- не є перешкодою для перегляду CSV у Блокноті (тощо),
- і може бути видалений шляхом пошуку / заміни в Excel (або Блокноті тощо).
- Вам не потрібно імпортувати CSV, але ви можете просто двічі клацнути, щоб відкрити CSV в Excel.
Якщо ви не хочете користуватися вкладкою, знайдіть у таблиці Unicode щось інше.
Ще один варіант
можливо, для створення файлів XML, для яких певний формат також прийнятий для імпорту новішими версіями MS Excel, і який дозволяє набагато більше варіантів, подібних до формату .XLS, але я не маю цього досвіду.
Тож існують різні варіанти. Залежно від ваших вимог / заявки, це може бути краще, ніж інше.
Доповнення
Потрібно сказати, що новіші версії MS Excel (2013+) більше не відкривають CSV у форматі електронних таблиць - ще одна швидкість руху в робочому процесі, що робить Excel менш корисним ... Принаймні, існують інструкції щодо їх подолання. Дивіться, наприклад, цей Stackoverflow: Як правильно відображати .csv файли в Excel 2013?
.