Страницы: 1 2 След.
RSS
импорт внешних данных из большого txt-файла
 
Excel 2003, в меню Данные/Импорт внешних данных/Импортировать данные, выбираю исходный файл txt объёмом 180МБ (рыночные котировки), при попытке указать исходную строку с номером больше, чем 32767, всплывает окошко: "Следует ввести целое число". При этом в окне запроса можно отмотать до строки намного ниже, т.е. данные Excel видит. Причина - нужно где-то что-то настроить, или это ошибка в программе? (Другими словами, мне чему-то нужно научиться, или искать другой MS Office?)  
 
В поиске по ключевым словам не нашёл такого вопроса, если он есть - прошу не сердиться на меня, просто покажите!
 
уточню: если импортировать данные с первой строки файла, то без проблем можно заполнить весь лист, т.е. до строки 65536.
 
Вы занимаетесь рыночными котировками, и у Вас до сих пор 2003 ?! ;))  
Создал файл длиной 300000 строк, попробовал в 2007.  
В нормальном режиме импортируется все с любой строки.  
В режиме совместимости с 2003 диапазон ограничен строкой 65537. Начинать можно с любой строки, но если номер >65536, то просто ничего не вставляется.
 
Это не значит, что проблема неразрешима в 2003. Попробуйте выбрать другой драйвер в меню Получить внешние данные - Из других источников - Microsoft Query или ODBC.  
 
Также макросом можно прочитать txt и взять нужные данные.
 
Вы уверены, что вам нужны все 180 мегабайтов данных?  
 
Не проще ли сделать макрос, который сначала обработает TXT (в виде массива в памяти), оставив только нужные данные, и лишь потом вставит отфильтрованную таблицу на лист Excel?
 
{quote}{login=Казанский}{date=04.04.2011 05:59}{thema=}{post}Попробуйте выбрать другой драйвер в меню Получить внешние данные - Из других источников - Microsoft Query или ODBC.  
 
Также макросом можно прочитать txt и взять нужные данные.{/post}{/quote}  
 
Данные/Импорт внешних данных/Создать запрос, выбираю Новый источник данных. MS ODBC for Oracle требует какие-то компоненты, а MS Text Driver не предлагает выбрать источник, лишь создаётся новый источник данных с выбранным мной именем, который "не содержит данных", а если "Продолжить изменение запроса в MS Query", то там непонятно что делать - в окошке "Запрос ..." которое внутри окна MS Query я вижу только первую строку данных txt-файла, да и процедура уже довольно мудрёная выходит. Ведь это должно быть как-то просто, если всё вообще правильно работает...  
А нужные данные - это все данные файла, причём не только одного и не один раз! Макросы не писал и не умею; если простая вставка данных глючит, какая может быть вера какому-то макросу?
 
{quote}{login=Казанский}{date=04.04.2011 05:37}{thema=}{post}  
В режиме совместимости с 2003 диапазон ограничен строкой 65537. Начинать можно с любой строки, но если номер >65536, то просто ничего не вставляется.{/post}{/quote}  
 
- а это означает, что в 2003-м из исходного файла нельзя взять данные со строки больше, чем 65536-я? просто тогда теряет смысл само предложение "Чтобы выполнить импорт только тех данных, что поместятся, нажмите кнопку "ОК". Затем можно импортировать остальные данные, ... используя мастер импорта текста ..."
 
Смысл остается: сначала импортируете 65К первых строк, потом еще 65К строк начиная с 65К+1 итд.  
Но само использование 2003-го экселя (и тем более 2007 и 2010 в режиме совместимости)смысл давно потеряло.
 
{quote}{login=longines}{date=04.04.2011 09:02}{thema=Re: Re: }{post}Смысл остается: сначала импортируете 65К первых строк, потом еще 65К строк начиная с 65К+1 итд.  
Но само использование 2003-го экселя (и тем более 2007 и 2010 в режиме совместимости)смысл давно потеряло.{/post}{/quote}  
 
оно было бы здорово и точно имело бы смысл, если бы работало! =)  
а что значит - смысл потеряло само использование 2003-го экселя? 8(
 
Ну так если "нужные данные - это все данные файла, причём не только одного и не один раз!" - тогда нужно писать макрос... тем более, что под 2003 Экселем работаете.  
Макросом брать по 65500 строк в массив, сразу разбивая по нужным полям, вываливать на лист, брать следующую партию - на следующий лист, и т.д. и т.п...  
И наверняка что-то всё-же в данных лишнее, что можно сразу игнорировать - всякие шапки страниц, разделители... Покажите кусок файла строк на 100, и как это будет выглядеть в Экселе.  
И ещё (скажу крамолу) - может быть в Эксель всё грузить и не нужно? Может быть сразу макросом можно нужный результат получить?
 
макросы конечно научусь писать, если это будет необходимо. только разве без макроса никак? дело простейшее, и если не идёт, то нужно искать источник проблемы в системе, а не делать что-то более сложное в той же системе. Мне же потом гадать: а все ли данные и правильно ли вставил этот мой макрос? - а зачем мне это...
 
Я смотрю - у Вас одна строка соответствует минуте. В сутках 1440 минут, в месяце 44640 минут. Обрабатывайте по месяцам!  
Я сейчас создал файл с подобными данными, только вместо пробелов разделитель ";", т.е. получился файл CSV в русской локали. Так вот, при импорте через Microsoft Query поля распознаются и можно задать интервал для поля Дата.  
Файл тоже в 300000 строк, Офис 2000.
 
{quote}{login=Казанский}{date=04.04.2011 11:33}{thema=}{post}Так вот, при импорте через Microsoft Query поля распознаются и можно задать интервал для поля Дата.  
Файл тоже в 300000 строк, Офис 2000.{/post}{/quote}  
Я всё равно не понял: доступны ли в 2003-м для вставки все внешние данные из большого файла (и как это сделать), или нужен другой офис? Да мне бы хоть как эти данные вытянуть, пусть на специальной программе, если Excel не может нормально работать.
 
Я думаю, если бы Вы показали кусок файла, как я выше сутки назад просил - уже бы и файл запроса MS Query, и макрос...
 
здесь фрагмент из другого файла txt с первых строк, кое-как открыл через WordPad и скопировал. вообще данные имеют одну шапку-заголовки, а дальше всё однотипно.
 
Я в этих запросах не особо понимаю ( :) ), но вот например файлик - откройте в блокноте и поправьте пути, потом можно запустить даблкликом. Если драйвер Driver={Microsoft Access Text Driver (*.txt, *.csv) установлен - то в Эксель подтянутся данные WHERE (post_215955.`<DTYYYYMMDD>`<20010103) - т.е. дата >`<20010103.  
Можно другое условие прописать и тянуть помесячно, как выше Казанский говорил.  
Вот это как раз и есть через Microsoft Query - у меня это лежит C:\Program Files\Microsoft Office\Office12\MSQRY32.EXE
 
Вот условие только для 20010102:  
WHERE (post_215955.`<DTYYYYMMDD>`<20010103) AND (post_215955.`<DTYYYYMMDD>`>20010101)
 
Если это не подходит - можно макрос написать, который может или подгружать на листы по 65к строк ( но тогда вероятно xls будет весить 300 мб и как оно будет ворочаться - не известно) или например просто порежет этот один большой файл на файлы по 65к строк, или например в диалоге запросит, какой срок интересует, и выберет только эти строки - в Эксель или в отдельный текстовый файл.  
Вариантов много.
 
Скорее всего автору нужна просто диаграмма, которую можно через сводную диаграмму подключить к источнику данных :)  
 
а хранятся данные в xls или  txt разницы ни какой -- это всего лишь набор мельтешащих цифр  
 
я бы запросил все в access, там бы привел в порядок  и оттуда уже использовал данные для анализа
Спасибо
 
Хранятся данные в xls или txt - разница есть по объёму. Проверил - из 5 мб стало 10 :(  
Если сохранить в xlsx -  тогда и впрямь особой разницы нет, даже чуть меньше стало.
 
{quote}{login=Hugo}{date=05.04.2011 10:06}{thema=}{post}Вот условие только для 20010102:  
WHERE (post_215955.`<DTYYYYMMDD>`<20010103) AND (post_215955.`<DTYYYYMMDD>`>20010101){/post}{/quote}  
процедуру с Вашим файлом провёл - путь поменял, но что собой представляет этот файл, как мне этим пользоваться самостоятельно, и что за условие для 2января, что оно между 1-м и 3-м? Можно конечно и макросы писать, только как мне потом убедиться в том, что: 1) мной всё правильно написано; 2) в программе всё правильно работает, - если на простейшем уровне программа уже не работает? Причина неизвестна, что делать - тоже: то ли можно настроить Excel, то ли нужно переустановить офис 2003, то ли ставить другой офис, то ли искать другой редактор текстовых таблиц (уже искал, кстати), или - как Вы предлагаете - заранее порезать исходный файл по указанному числу строк. Но как это сделать?  
 
PS: да, у меня машина старая, с 2002 года - 950МГц, 256МБ оперативки, офис с загрузочного диска со старых времён. Но я ещё в более ранние времена выполнял квантовохимические расчёты молекул с плавающей запятой (не знаю правда, что такое) на более старых компьютерах, от минут до суток машина делала один расчёт, и думаю, это посложнее, чем задача вставки данных из файла txt в электронную таблицу. т.е. это же не проблема для ЭВМ, а для софта, нужно лишь выбрать то, что нормально сделано и нормально работает.
 
{quote}{login=R Dmitry}{date=05.04.2011 10:36}{thema=}{post}Скорее всего автору нужна просто диаграмма, которую можно через сводную диаграмму подключить к источнику данных :)  
 
а хранятся данные в xls или  txt разницы ни какой -- это всего лишь набор мельтешащих цифр  
 
я бы запросил все в access, там бы привел в порядок  и оттуда уже использовал данные для анализа{/post}{/quote}  
 
нет, мне нужны именно данные в электронной таблице, которые я буду обрабатывать формулами, а результаты уже смотреть в виде сумм и диаграмм. но перед этим придётся перепробовать много вариантов формул (торговых систем), т.е. удобнее прежде загнать данные в таблицу. Access пока даже не знаю, что такое, придётся осваивать.
 
{quote}{login=Hugo}{date=05.04.2011 10:49}{thema=}{post}Хранятся данные в xls или txt - разница есть по объёму. Проверил - из 5 мб стало 10 :(  
Если сохранить в xlsx -  тогда и впрямь особой разницы нет, даже чуть меньше стало.{/post}{/quote}  
Игорь а еще можно xlsb, я не об этом я об том что сами то цифры, как визуальная информация бесполезны в таком объеме, а вот тренд на графике......гораздо полезнее  
 
Ну это старттопику решать :)
Спасибо
 
Ну понятно, только у автора 2003, и если он сразу 180 мб загрузит в XLS - не знаю, какой файл получится и получится ли воообще в итоге, может всё зависнет...
 
{quote}{login=Hugo}{date=05.04.2011 11:11}{thema=}{post}Ну понятно, только у автора 2003, и если он сразу 180 мб загрузит в XLS - не знаю, какой файл получится и получится ли воообще в итоге, может всё зависнет...{/post}{/quote}  
 
Ну вообще-то моё желание именно в том, чтобы данные предварительно разделить. В минутных котировках можно легко 2 месяца забить в один лист и ещё много строк останется, а сколько таких листов выдержит один файл - посмотрим. несколько листов должен выдержать, подобное я уже делал.
 
{quote}{login=R Dmitry}{date=05.04.2011 11:02}{thema=Re: }{post}  
сами то цифры, как визуальная информация бесполезны в таком объеме, а вот тренд на графике......гораздо полезнее  
 
Ну это старттопику решать :){/post}{/quote}  
 
философский вопрос, так что спорить не буду, здесь каждому - своё. по трендам и графикам уже пробовал торговать, вывод один - нужна система, а тестировать её лучше методично на всех данных в цифрах. Напомню, цифры в таком объёме - это лишь исходные данные ;-)
 
{quote}{login=mihas}{date=05.04.2011 11:29}{thema=Re: Re: }{post}{quote}{login=R Dmitry}{date=05.04.2011 11:02}{thema=Re: }{post}  
сами то цифры, как визуальная информация бесполезны в таком объеме, а вот тренд на графике......гораздо полезнее  
 
Ну это старттопику решать :){/post}{/quote}  
 
философский вопрос, так что спорить не буду, здесь каждому - своё. по трендам и графикам уже пробовал торговать, вывод один - нужна система, а тестировать её лучше методично на всех данных в цифрах. Напомню, цифры в таком объёме - это лишь исходные данные ;-){/post}{/quote}  
в общем через системный текстовый драйвер можно привести данные к нужную формату, ну или почти к нужному и импортировать, в сводную там можно выбирать нужный период и т.д,
Спасибо
 
Сейчас только заметил пост от 05.04.2011, 22:54..  
1.Что делать с файлом - запустить. Должен открыться Эксель с уже подтянутыми данными.  
2."что за условие для 2января, что оно между 1-м и 3-м?" - такие Ваши данные, как иначе проверить? Я изменил пару первых строк на первое января и проверил...  
Если спрашиваете, куда это писать - ну так если правили пути, то там видно, куда писать - в конце уже есть похожее условие.  
А вообще этот запрос легко правится в C:\Program Files\Microsoft Office\Office12\MSQRY32.EXE  
3.Порезать на части по заданному числу строк  - макросом или скриптом (vbs).  
Читаем файл построчно и перекладываем строки в другой файл, счётчик считает порции.
 
Вот результат о котором я говорил  
см сводную
Спасибо
 
прилагаю источник odc
Спасибо
Страницы: 1 2 След.
Наверх