Импорт данных из .xlsx - страница 2

 
AlexDKrekotnev:

Хорошо, допустим, что вместо файла .xlsx будет файл .txt с разделителями и табуляцией.

Какой объем исходных данных в этом случае "потянет" MetaTrader?

Он справится с 800.000 и более ячеек?

Справиться. Как орешки расшелкает. Обработает даже быстрее чем Ваш Excel. Но вам действительно лучше сконвертировать вашу таблицу Excel в какой-нибудь промежуточный формат, например в CSV. В MQL5 нет штатных средств по работе с форматами Microsoft Office. Если для Вас работа с форматом принципиальна, без сторонних dll не обойтись.

А вообще на лицо неправильная реализация Вашей задачи. Excel - это промежуточная программа, берущая откуда-то данные (подозреваю что из самого MetaTrader'а), делающая расчеты и сохраняющая их в файл. Затем этот файл парсится индикатором MQL и на их основе строятся линии. Спрашивается зачем здесь промежуточное звено в виде Excel? Что может рассчитать Excel, что не может MQL? Правильным решением было бы произвести все расчеты в самом индикаторе, с помощью MQL. Это бы значительно упростило бы систему, сделало бы ее производительней и надежней. Однако хозяин - барин. Если Вам так принципиально мучиться с Excel, - как говориться в добрый путь, мы Вам даже подскажем что нужно сделать, что бы Ваши мучения были чуть комфортнее. 

 
C-4:

Справиться. Как орешки расшелкает. Обработает даже быстрее чем Ваш Excel. Но вам действительно лучше сконвертировать вашу таблицу Excel в какой-нибудь промежуточный формат, например в CSV. В MQL5 нет штатных средств по работе с форматами Microsoft Office. Если для Вас работа с форматом принципиальна, без сторонних dll не обойтись.

А вообще на лицо неправильная реализация Вашей задачи. Excel - это промежуточная программа, берущая откуда-то данные (подозреваю что из самого MetaTrader'а), делающая расчеты и сохраняющая их в файл. Затем этот файл парсится индикатором MQL и на их основе строятся линии. Спрашивается зачем здесь промежуточное звено в виде Excel? Что может рассчитать Excel, что не может MQL? Правильным решением было бы произвести все расчеты в самом индикаторе, с помощью MQL. Это бы значительно упростило бы систему, сделало бы ее производительней и надежней. Однако хозяин - барин. Если Вам так принципиально мучиться с Excel, - как говориться в добрый путь, мы Вам даже подскажем что нужно сделать, что бы Ваши мучения были чуть комфортнее. 

Благодарю за ответ!

Excel - это промежуточная программа, берущая откуда-то данные

Да, Вы правы - Excel содержит результаты обработок и расчетов; он в полной мере является промежуточным звеном, поскольку в нем происходит обработка макросами исходного массива (вообще не из какой-либо торговой платформы), содержащего колоссальное количество мусорных данных, для приведения в стройный вид. Далее массив можно перебросить в .txt с разделителями и табуляцией.

Вчера я проверял, как это происходит. Немного смутило, что сдвигаются столбцы относительно шапки, а в некоторых местах внутри столбцов - правые значения относительно левых, когда последние имеют 4 символа в длину (с учетом запятой). Выглядит это примерно так:

Имя1      Имя2      Имя3      Имя4      Имя5

1000         1000         1000        100          1000

1500         1500         1500        1500            1500

Однако везде между значениями, несмотря на визуальную разницу в расстояниях, присутствует табуляция. Очень надеюсь, что mql "проглотит" это.

Что может рассчитать Excel, что не может MQL?

Excel ползволил "причесать" битый исходный массив (16х20(25)000 ячеек) с большим количеством неструктурированной и мусорной информации и внутренними сдвигами блоков и провести порядка сотни проверок с помощью макросов на отсутствие некорректной информации. Надеюсь, я смог ответить :)

 
AlexDKrekotnev:

...

Excel ползволил "причесать" битый исходный массив (16х20(25)000 ячеек) с большим количеством неструктурированной и мусорной информации и внутренними сдвигами блоков и провести порядка сотни проверок с помощью макросов на отсутствие некорректной информации. Надеюсь, я смог ответить :)

В MQL можно программно отфильтровать весь мусор. Под вопросом пока только какие-то "внутренние сдвиги блоков". Но это уже нужно хотя бы пример исходных данных посмотреть, чтобы понять, что с этим можно сделать. 
 

Уважаемые участники форума, всем спасибо за содержательные ответы!

Необходимо подготовить техническое задание.

Следующий этап обсуждения будет на фрилансе, всего хорошего! :)

 
tol64:
В MQL можно программно отфильтровать весь мусор. Под вопросом пока только какие-то "внутренние сдвиги блоков". Но это уже нужно хотя пример исходных данных посмотреть, чтобы понять, что с этим можно сделать. 

Под вопросом пока только какие-то "внутренние сдвиги блоков"

Имеется ввиду ситуация, когда в однородном на произвольном участке массиве данных (7 столбцов на, скажем, 1000 строк) происходит смещение внутреннего блока (5 крайних столбцов на 400 строк) на 1-2 столбца вправо.

При этом "покинутые" ячейки не остаются пустыми - они содержат некорректные мусорные данные.

 
AlexDKrekotnev:

Под вопросом пока только какие-то "внутренние сдвиги блоков"

Имеется ввиду ситуация, когда в однородном на произвольном участке массиве данных (7 столбцов на, скажем, 1000 строк) происходит смещение внутреннего блока (5 крайних столбцов на 400 строк) на 1-2 столбца вправо.

При этом "покинутые" ячейки не остаются пустыми - они содержат некорректные мусорные данные.

Судя по описанию решаемо. Но для окончательного ответа нужно ещё увидеть пример мусорных и чистых исходных данных. 

 

Но для окончательного ответа нужно ещё увидеть пример мусорных и чистых исходных данных.

Необходимо подготовить техническое задание.

Следующий этап обсуждения будет на фрилансе, всего хорошего! :)


Уважаемые модераторы, ветку можно закрывать, спасибо!

 
как передать данные ценовой метки в excel
 
AlexDKrekotnev:

Но для окончательного ответа нужно ещё увидеть пример мусорных и чистых исходных данных.

Необходимо подготовить техническое задание.

Следующий этап обсуждения будет на фрилансе, всего хорошего! :)


Уважаемые модераторы, ветку можно закрывать, спасибо!

как передать данные ценовой метки в excel
 
777dima777:
как передать данные ценовой метки в excel

Поиск в бесплатной кодобазе по слову CSV.

Причина обращения: