Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2017, 14:24   #1
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию Проблемы в Excel

Здравствуйте.
У меня в моём сцаном CSV есть колонка "Доставка", в которой указываются числа в формате от-до, то есть например от 7 до 13 дней. В этом формате данные отображаются в блокноте.
Но Excel выдаёт мне июл.13.
Я погуглил, обнаружил, что такая же проблема с разделителями целой и дробной части вещественных чисел. Но дальше интереснее - про тире я ничего не нашёл.
Изменение формата ячейки на общий/текстовый выдаёт ахинею вроде 41456, а в системных настройках даты и времени символ тире не фигурирует ну вообще никак.
Настройки представления типов (в Excel) я не трогал, системные форматы даты и времени так же не менял. Но это бред, когда заведомо текстовые данные воспринимаются как хрен пойми что. (CSV хранит голый текст, безо всяких настроек). Выполнять импорт из текста каждый раз - это слишком топорно (и не факт, что не будет такой же проблемы).

Как быть ?
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 26.10.2017 в 14:31.
OmegaBerkut вне форума Ответить с цитированием
Старый 26.10.2017, 14:36   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Не открывать просто файл, а создавать пустую книгу Excel, лезть в меню Данные - Из текста. а там уже для csv мастер запустится, в котором можно указать тип данных в каждой из колонок. Или можно попробовать подправить значения, чтобы вместо 7-10 хранилось '7-10. Одинарная кавычка примерно для этого и нужна. Только я не уверен, что она будет обрабатываться при открытии файла.
pu4koff вне форума Ответить с цитированием
Старый 26.10.2017, 14:53   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Как быть ?
1) грузить файл в Excel макросом
2) если не критично - можете попробовать вставить пробел в проблемный столбец
например,
Код:
1;test;  7-13

p.s. А почему в разделе "Свободное общение"? мне кажется, что тема больше подходит для раздела MS Excel. Перенести туда?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.10.2017, 14:59   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Насколько помню можно еще заменить 7-10 на ="7-10" тогда отформатирует как текст без мастера
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.10.2017, 16:00   #5
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Насколько помню можно еще заменить 7-10 на ="7-10" тогда отформатирует как текст без мастера
как вариант, перед каждым значением вставить '.
Код:
7-10
=>
Код:
'7-10
. Excel должен читать такую запись как текст
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 29.10.2017, 00:21   #6
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Excel должен читать такую запись как текст
Ребят, всё классно, но у меня таких 500 000 строк. Поэтому мне пришлось банально забить на некоторые вещи, и просто не открывать файл в экселе, преобразовывать всё при помощи собственных велосипедов.
Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Выполнять импорт из текста каждый раз - это слишком топорно
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 29.10.2017, 09:35   #7
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Этот файл откуда-то взялся, значит надо исправить генерацию файла, чтоб проставила кавычки.
Имея ясное понимание куда надо кавычки вставить, что мешает исправить сам файл с помощью ближайшего текстового редактора и регулярных выражений, будь файл 50 строк, хоть 500000...
waleri вне форума Ответить с цитированием
Старый 29.10.2017, 14:38   #8
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Этот файл откуда-то взялся, значит надо исправить генерацию файла, чтоб проставила кавычки.
К моему сожалению или счастью исправление именно генерации файла мне не предоставляется возможным.

Цитата:
Сообщение от waleri Посмотреть сообщение
Имея ясное понимание куда надо кавычки вставить, что мешает исправить сам файл
Исправление одних артефактов влечёт за собой появление других артефактов.
Изначально предполагалось всё привести к самому простому формату
Код:
Ячейка_0;Ячейка_1;Ячейка_2;Ячейка_3;Ячейка_4;Ячейка_5;Ячейка_6;Ячейка_7
Для этого необходимо убрать (заменить, допустим на -) все разделители в самих ячейках, но для этого необходимо сначала правильно получить все ячейки по отдельности. Об этом я создавал тему (тыц).
И эксель умеет делать это нормально (и быстро) - правильно разбивать на ячейки, даже если какие то ячейки не взяты в кавычки, а какие то взяты (и всё это безобразие в пределах одного файла).
Цитата:
Сообщение от pu4koff Посмотреть сообщение
чтобы вместо 7-10 хранилось '7-10
Проблема в том, что эти данные нужно будет отправлять в базу данных в запросе к MySQL. Я думаю, что ни для кого не секрет, какой эффект даст вложенная одинарная кавычка в данных запроса. У меня и так в текстовых данных они заменяются на -, а в числах это вообще страх и ужас, который нужно как то адаптировать для того, что бы выполнять импорт из любого файла, с привязкой колонок.

Цитата:
Сообщение от Аватар Посмотреть сообщение
Насколько помню можно еще заменить 7-10 на ="7-10"
Перед отправкой в базу данных не должно быть вообще никаких кавычек, обработка и так сложная, ещё усложнять её кавычками - проще убрать их на подходе, о чём я написал в этом же посте. Так что символ равно тут вообще никак не проходит.

P. S. Почему в качестве разделителя не используют наиболее подходящий для этого символ табуляции ... Он же в табличных данных не используется для передачи какой либо информации, чем и является более универсальным с точки зрения обработки. Есть даже целый формат TSV, но почему то он не распространён. Из 15 файлов, с которыми я раотаю каждый день - только один файл формата txt, а данные записаны в TSV.
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 29.10.2017 в 14:54.
OmegaBerkut вне форума Ответить с цитированием
Старый 29.10.2017, 14:52   #9
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Вы определитесь уже что вам надо. То вам надо читать в Эксель, то потом оказывается надо делать запрос в MySQL.
Далее, при импорте Эксель дает возможнось указать формат каждой колонки.
Укажите, что эта колонка текст и дело с концом.
waleri вне форума Ответить с цитированием
Старый 29.10.2017, 14:55   #10
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Вы определитесь уже что вам надо. То вам надо читать в Эксель, то потом оказывается надо делать запрос в MySQL
Я пытаюсь избавиться от проблем обработки, и один из вариантов - форматирование данных в экселе. Но как выяснилось - этот вариант не работает должным образом.
Цитата:
Сообщение от waleri Посмотреть сообщение
Далее, при импорте Эксель дает возможнось указать формат каждой колонки.
Укажите, что эта колонка текст и дело с концом.
Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Выполнять импорт из текста каждый раз - это слишком топорно
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с Excel 2010 strannick Microsoft Office Excel 3 12.12.2012 14:55
VBA Excel проблемы Alexanderrodkin Microsoft Office Excel 1 28.08.2012 08:59
Проблемы с excel hunter03 Помощь студентам 1 13.11.2010 13:37
Из MS Excel XP в MS Excel 2008 for Mac, есть проблемы O_H Microsoft Office Excel 0 27.09.2010 16:42
Проблемы с Excel 2007 Tokvemada Microsoft Office Excel 4 22.06.2010 13:43