Страницы: 1 2 След.
RSS
Как отключить преобразование дробей в даты при выгрузке данных в таблицы
 
Выгружаю файл из базы, программно. Изменить процедуру выгрузки или формат нельзя. При выгрузке создаёт .csv файл. Я открываю файл с помощью Excel и, блин, он преобразовывает все дроби похожие на дату в дату.    
Вариант поставить в настройка exсel вместо точки запятую, как разделитель дроби, не прокатывает, так как есть файлы в которых дроби с запятой, и тогда они будут в таком же состоянии.    
 
 
Подскажите, как раз и навсегда сделать так, чтобы точка прекратила превращать числа в даты?  
 
Подойдёт, как вариант, пример макроса, которым потом можно будет всё вернуть на свои места (превратить даты в дроби).
 
Вы бы выложили пример .csv файла.
Я сам - дурнее всякого примера! ...
 
{quote}{login=РусНекромант}{date=15.10.2010 05:12}{thema=Как отключить преобразование дробей в даты при выгрузке данных в таблицы}{post}Вариант поставить в настройка exсel вместо точки запятую, как разделитель дроби, не прокатывает, так как есть файлы в которых дроби с запятой, и тогда они будут в таком же состоянии.{/post}{/quote} Возможно глупость предложу, но если вместо запятой попробовать точку с запятой (;) или двоеточие (:) или иной знак к которому эксель не будет цепляться?
 
формат текстовый помогает
 
Эх я думал всё таки кто то поможет((((  
Ну во первых знаки кроме запятой или точки не подходят. Почему не подходят? Да они работают, но как потом человек будет смотреть данные? Выглядеть то будет не айс. Второе насчёт примера, а зачем пример если всё генерируется автоматически и программно и числа например 12,09(м2) превращаются в 12сен. Кстате здесь кроется ответ на предложение про текстовый формат, файл создаётся автоматом а в эксель автоматом стоит общий тип. Вариант как то где то в настройках поставить что бы по умолчанию был текстовый формат, но я не знаю как. И вообще охота было бы вырезать эту функцию из экселя, охота матом ругаться на того дибила который сделал автоопредиление дат и не сделал маааааааленькой галочки отключения. Есть вариант перекодировать всё в текст и будут 4-х значные коды дат, а потом макросом перегнать в какой нибудь другой формат например с точкой. Но как представлю объём кода мне становится не хорошо да и вообще не рентабельно это, проще наверное конфиги перелопатьтить попробоватьт (  хоть и противоречит лицензии). Да и кста про даты уже с 2003 экселя  эта функция портит жисть.
 
Если Вы в состоянии перелопатить конфиги, то добавить в прогу маленькую строчку, которая делает на листе тестовый формат,  для Вас не должно быть проблемой...  
 
Другой вариант - сделать формат книги текстовый и сохранить как шаблон.
 
Интересно как добавить в книгу строчку если книги не существует, а если существующую книгу открыть что бы добавить строчку, то эксель успеет поменять значения.  
 
Насчёт шаблона, а типа он по этому шаблону все книги открывать будет?
 
{quote}{login=РусНекромант}{date=25.10.2010 03:07}{thema=}{post}...насчёт примера, а зачем пример если всё генерируется автоматически и программно и числа например 12,09(м2) превращаются в 12сен. {/post}{/quote} Дело Ваше, мне это и подавно не нужно...
Я сам - дурнее всякого примера! ...
 
Вот так у меня открывается в листере и в эксе.
Я сам - дурнее всякого примера! ...
 
{quote}{login=KuklP}{date=25.10.2010 05:16}{thema=}{post}Вот так у меня открывается в листере и в эксе.{/post}{/quote}  
 
Я не хотел никого обидеть. Тот пример который смотрел непонял. я вроде норм описал проблему но никто не вник в неё. Итак начну сначала. Есть программа (Стороняя не эксель, в код залезть не могу автоматическая и вообще чёрный ящик) она формирует .CSV, этот файлик открываю экселем так как эммммммм ( ну можно было бы и опен офисом) потому что мне нужно дальше обрабатывать в экселе макросом. Заменить запятую на точку не могу так как часть данных с точкой а часть с запятой. Если разделитель заменить тупо на какой нить слеш точку запятой пробел или ещё что то, то юзер не поймёт да и не красиво и не правильно.И вот когда открываю файлик экселем он сразу автоматом меняет всё на даты (ну не всё но большую часть). Надеюсь проблема ясна могу выслать конечно файлик хотя не понимаю чем поможет.  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
Аноним, Вы правила читали? 1,5мб! Круто. Цитирую себя:"Вы бы выложили пример .csv файла." И на будущее... Я анонимам не отвечаю.
Я сам - дурнее всякого примера! ...
 
И зачем в примере 7914 строк? ЗАЧЕМ?! Кроме того - нужен .csv
 
{quote}{login=KuklP}{date=25.10.2010 05:55}{thema=}{post}Аноним, Вы правила читали? 1,5мб! Круто. Цитирую себя:"Вы бы выложили пример .csv файла." И на будущее... Я анонимам не отвечаю.{/post}{/quote}  
Эммммм а в чём разницо особенно то между .CSV или .xls? ексель не видит разници, А анонимным был потому что на работе писал и когда дописал(писал долго) то слетела рега, я кстати даже не заметил. Ща файл выслать не могу дома потому что. А вообще для примера если хотите сами проверить то создайте файлик в какой нибудь не эксель проге и там пропишите 12,09 и 12.09 что бы ваши настройки системы обойти. И посмотрите что будет.
 
Можно открывать как источник внешних данных и задать в процессе формат колонок.  
Можно переименовать csv в txt и тоже открыть как источник внешних данных. И кстати в том и разница между xls и csv, что csv - это простой текст.
 
Попробуйте поменять расширение на .txt. Затем включите макрорекордер и запишите открытие этого файла. На последнем этапе покажите для нужных столбцов формат - Текстовый.
 
Посмотрите пример.
 
Файл 123.xls случайно попал. Его можно удалить из папки. Смотрите только 123.txt и Книга1.xls
 
Михаил, да действительно работает спасибо конечно. Вот только блин столько костылей из за того что бы просто программа не делала то что её не просят. Сейчас получается нужно сначала цсви формировать, потом переименовать в тхт потом макросом перевести в эксель, потом макросом заменить точки на запятые(или наоборот), потом вернуть в числовой формат(потому что мне нужно вычислять всё это дело), и только потом начать работать с файлом. И при всём при том всё это делать с 30000-ми строк кода,которое займёт время несомненно. Спасибо конечно, но я всё таки надеялся что я просто не заметил галочки для отключения функции, и что кто то укажет на неё.
 
Кстати вопрос, просто стерев расширение .csv и написав .ТХТ будет достаточно или всё таки придётся какие то сторонние программы дополнительно ставить?
 
Как внешние данные не пробовали открыть? Можно не переименовывая. Можно это действо в макрос записать.  
Дайте маленький пример своего файла.
 
Вот пример. правда блокнот только в txt сохраняет.
 
эмммммм сайт .csv не хочет грузить говорит что формат такой незя загружать, ча запакую в архив.
 
Где?  
И чего это только в текст - просто отредактировать и сохранить изменения. Не надо "сохранить как" выбирать.  
Конечно, делать на копии.
 
Посмотрел - у меня и так по даблклику корректно открывает. Там в данных вроде и нет, где спутать, разве что кухня 11.6 :)  
Но и как импорт данных тоже можно корректно с заданием формата загрузить.
 
Ну во первых возможно у вас стоит формат дат через запятую, во вторых было очь трудно редактировать в блокноте CSV ( не очень читабельно) кстати он ведь не только расспознаёт месяцы и дни но ещё и месяцы года, там в кухнях почти всё в датах.Как внешний источник это конечно можно, нужно попробовать.
 
Да, у Вас немного непривычный файл - там конец строки в блокноте не распознаётся. В Notepad++ нормально по строкам раскладывается.  
Настройки системные наверняка у нас разные, но при импорте данных можно разделители поменять, если нужно.
 
Вот здесь есть решение по импорту CSV в Excel.  
http://hoster01.ru/spravochnaya/esli-pri-zagruzke-csv-v-excel-chisla-preobrazovyvayutsya-v-datu  
По-моему, то что Вам нужно: как заставить Ексел не преобразовывать числа в даты
 
{quote}{login=РусНекромант}{date=15.10.2010 05:12}{thema=Как отключить преобразование дробей в даты при выгрузке данных в таблицы}{post}Подскажите, как раз и навсегда сделать так, чтобы точка прекратила превращать числа в даты?{/post}{/quote}  
Раз и навсегда не знаю, но через внешние данные все получается. Вставляешь "Внешние данные из текста" На нужном столбце ставишь формат "Текстовый". У меня спокойно съел формат csv. Проблема была решена
 
я нашел выход в том чтобы выделить все ячейки которые были преобразованы не так как мне нужно и вручную настроил формат ячейки. У меня была такая ситуация: исходные данные такие: 7.1 7.2 7.3 ... 7.12 7.13  
получилось 07.янв 07.фев 07.мар ... 07.дек июл.13  
для ячеек 07.янв ... 07.дек в формате ячейки выбрал (все форматы) и поставил формат: Д.М  
для ячеек типа июл.13: М.ГГ  
в результате получил те же 7.1 7.2 7.3 ... 7.12 7.13  
уловили суть?  
выход конечно подходит не для всех ситуаций, но делюсь тем что имею, мне помогло после того как я пару часов нервно смотрел на excel.
 
Столкнулся с такой же проблемой. Вот ссылка, может поможет.  
 http://www.cyberforum.ru/post1002656.html
Страницы: 1 2 След.
Читают тему
Наверх