Чи може MS Excel використовувати недруковані символи як роздільники полів у файлах CSV? Якщо так, то як?


2

Щойно я виявив, що в багатьох кодуваннях символів є символи, що не друкуються, призначені для розділення різних фрагментів інформації , наприклад, символ 31 ASCII є "роздільником одиниць". Здається, що якби я міг використовувати один з цих символів як роздільник у значенні, розділеному комою / символами (CSV), я міг би уникнути проблем із уникненням значень, які можуть виникати в тексті, наприклад, коми.

Чи можливо змусити MS Excel (2007) використовувати "роздільник одиниць" замість коми? Якщо так, то як я можу це зробити?

Редагувати:

Як я можу ввести недрукувальний символ? Якщо я спробую знайти Unicode "001F" на карті символів, я отримаю висвітлене порожнє поле та повідомлення "Без символів доступно", як показано нижче:

введіть тут опис зображення

Я б краще не встановлював спеціальну програму просто для генерування недрукуваного символу, але можу, якщо доведеться.



Як я можу ввести недрукувальний символ?
kc2001

1
Спробуйте скопіювати символ, який не можна роздрукувати з карти символів, і вставити його у List Separatorполе за посиланням вище

+1 для вказівника на карту символів. Я відредагував свою публікацію, щоб відобразити невдале використання Карти символів.
kc2001

Ascii Decimal 31 з'являються як трикутник, спрямований на мене вниз: ▼
Нд

Відповіді:


3

Швидкий тест підтверджує, що @ bobSmith1432 має працездатне рішення.

Я використовував Notepad ++ для створення символу ASCII 31 та копіювання його для вставки в List separator:поле.

У Windows 7 перейдіть до Control Panelта виберіть Region and Language. На Formatвкладці натисніть Additional settings...кнопку. Це відкриє Customize Formatвікно. Тут змініть кому в List separator:полі на ваш символ ASCII 31, вставивши її з іншого джерела.

Ви, ймовірно, повинні змінити це назад на кому відразу після збереження електронної таблиці як CSV.

Редагувати: як альтернатива Notepad ++, ви можете використовувати звичайний старий блокнот. Якщо блокування чисел увімкнено, відкрийте Блокнот, утримуйте Altклавішу та натисніть 031на цифрову панель. Потім відпустіть Altключ. Натисніть, CtrlAа потім CtrlCвиберіть символ, що не друкується, і скопіюйте його. Потім ви можете вставити символ у Customize Formatвікно.


Спасибі, Дейне! +1 для вказівника на "Налаштувати формат". Я вважаю за краще уникати глобальної заміни роздільника списку. Знаючи мене, я забув би повернути тимчасове недрукувальне значення до більш звичайного. Також я вважаю за краще рішення, яке не передбачає встановлення додаткового програмного забезпечення. Звичайно, я візьму те, що можу отримати.
kc2001

1
Я додав пояснення, як це зробити з ванільним блокнотом. Якщо є вбудований спосіб змінити роздільник CSV, я хотів би почути про це. Цей метод, безумовно, не те, що я би радий виконувати, особливо з будь-якою регулярністю.
Дейн

Ого. Це насправді спрацювало! +1 для пояснення блокнота.
kc2001

Дякую. Він працював для мене Alt+031безпосередньо за допомогою панелі регіону contol-> Додатково-> Розділювач списку. Ви нічого не бачите, але це працює.
Іван Феррер Вілла

1

Я просто думав про інший спосіб зробити це. Створіть додатковий робочий аркуш в електронній таблиці, яку потрібно експортувати. У A1новому робочому аркуші розмістіть таку формулу:

=CONCATENATE(Sheet1!A1,CHAR(31),Sheet1!B1,CHAR(31),Sheet1!C1)

Змініть, Sheet1щоб бути назвою робочого листа, який потрібно експортувати як CSV. Повторіть шаблон для додаткових стовпців. Вище формула захоплює стовпці A, Bі C. Для цього Dтакож використовуйте наступне:

=CONCATENATE(Sheet1!A1,CHAR(31),Sheet1!B1,CHAR(31),Sheet1!C1,CHAR(31),Sheet1!D1)

Сподіваємось, ви можете побачити викрійку там. Скопіюйте цю клітинку вниз на скільки завгодно рядків. CHAR(31)вставляє потрібний символ ASCII.

Потім збережіть як CSV та експортуйте лише цей новий аркуш. Оскільки у вас є лише один стовпець, коси та інші роздільники не будуть додані.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.