как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
mayil Автор Сообщений: 277 Откуда: Гянджа, Азербайд Дата регистрации: 20.06.2006 |
Добрый день! На моем попечении база из 142000 записей. Каждый квартал мне надо перебросить базу в эксель и отправить в министерство. В данный момент я делаю примитивно - делю базу на три куска: mater_1.xls(60000 строк), mater_2(60000 стр.) и mater_3(22000 строк) , а потом собираю их в одно целое на просторах листа Эксель-2007 (10 млн. строк). Эта проблема обсуждалась на форуме, может быть кто-то уже нашел простое решение? Мне пока не удается. Поделитесь!
------------------ |
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
mayil Автор Сообщений: 277 Откуда: Гянджа, Азербайд Дата регистрации: 20.06.2006 |
Приблизительно так
USE MATERIAL AGAIN EXCLUSIVE COPY TO material_1 FOR RECNO()<=60000 TYPE xl5 COPY TO material_2 FOR RECNO()>60000 AND RECNO()<=120000 TYPE xl5 COPY TO material_3 FOR RECNO()>120000 TYPE xl5 CLOSE TABLES WAIT 'Сохранены под именами material_1, material_2, material_3 ..!' QUIT |
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
AndyNigmatec Сообщений: 1550 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Ну про exclusive - ваще моветон канеш, но не про это речь ...
Ежели на машине где вы все это делаете установлен офис-2007 или старше - то нет проблем передать сразу все массивом - примеров тут на формуме вагон и тележка в придачу ))) Если поиском не найдете - пишите - разыщем |
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
AndyNigmatec Сообщений: 1550 Откуда: Волгоград Дата регистрации: 28.06.2015 |
ну вот вам основная идея:
в случае же использования шаблона - вам достоточно его подготовить - т.е. взять готовый форматированный эксель-файл что у вас получается - очистить его от данных и сохранить как шаблон в самом экселе - и в предыдушем коде в методе экселя Add() передать этот файл как параметр
где lcFileMask - ваш шаблон Исправлено 1 раз(а). Последнее : AndyNigmatec, 22.04.17 11:08 |
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
mayil Автор Сообщений: 277 Откуда: Гянджа, Азербайд Дата регистрации: 20.06.2006 |
Однако ты не прав! Вина в самом Фоксе! В нем заложен механизм - передавать на лист любого екселя, старого или нового, только 4 Kb (65536) строк.
|
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
AndyNigmatec Сообщений: 1550 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Зачем спорить))) - проверь
мы же не эспользуем фоксовый экспорт здесь - так что хучь мильон передавай, лишь бы версия эксельки позволяла я таким образом порядка 100 тыс. выгружал (да, извращение, но так нужно было начальству, хз че они на таком обьеме в экселе увидят) Исправлено 1 раз(а). Последнее : AndyNigmatec, 22.04.17 11:16 |
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
mayil Автор Сообщений: 277 Откуда: Гянджа, Азербайд Дата регистрации: 20.06.2006 |
Этот код я рассматривал час назад, автор его жалуется на медленную его работу. Как я понял из кода, здесь перебрасывается не строчка целиком, а поклеточно через массив, а это уже не то. Я хочу чтобы эти две строки:
use material copy to otchet type xls передавали екселю не 64 кв, а миллион строк. |
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
AndyNigmatec Сообщений: 1550 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Какое поклеточно !вы читать умеете - массив целиком за раз - и работает очень быстро - проверено
|
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Если прямо в эксель, то > 64К строк в один присест не получится. В CSV выгрузи, и открой его экселем, и сохрани в экселе. Напрямую затолкать миллионы строк в эксель - чревато, то работает, то нет...
|
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
mayil Автор Сообщений: 277 Откуда: Гянджа, Азербайд Дата регистрации: 20.06.2006 |
Версия позволяет - у 2007-го 1 млн. А пока пойду другим путем.
Когда все три моих куска базы : материал1, материал2 и материал3 будут готовы, я программным путем перемещу их на чистый лист 2007-го, сначала первого, потом впритык снизу второго, и т.д. вот как: Count all to strok stolb = Fcount() эти две строчки дадут мне размеры каждого куска, и тогда я выделю и скопирую эти куски и склею, наконец, все куски в одно целое! |
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
mayil Автор Сообщений: 277 Откуда: Гянджа, Азербайд Дата регистрации: 20.06.2006 |
"В CSV выгрузи" ЧТО ЭТО СSV?
Спасибо вам, проверю варианты.. |
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Недавно мучались в эксель-2007 с 300 тыс строк, колонок на 30. Эксель практически не работает, если что-то реально делать: копировать колонки, колонку с формулой делать, фильтровать, Куски, правда, обьединять получается. Эксель встает тупо, ждешь минут 10-30, и плюнешь. Удается вобщем только наполнить. Хотя в тестовых примерах все так как-то работает. На реальном же шаблоне, с реальными данными, все печально как-то с экселем. Может форматирования ему мешают, может данные какие, количество символов... хз, что этому танцору мешает )
|
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
А excel-2007 dbf-файлы уже не признает? Вроде бы есть какие-то дополнения для чтения dbf. Но не уверен.
А сохранить можно из фокса и с разделителями Tab, например. Use mytable Copy to mytable SDF deli with TAB А любой excel такие текстовые файлы без проблем хавает. |
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Пока DBF читает, если делать DBF в TYPE FOX2X AS 866. Создавать DBF уже не будет.
|
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Как из 142тыщ получается 10млн?
А министерство в другом формате не желает? Они что реально будут этот файл в ехселе смотреть? Выгрузил строчку в один файл, две во второй. Сравнил, проанализировал. И создал файл с нуля чисто файловыми функциями. |
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Дело програмера - "здать" в звказанном формате, хошь в экселе на миллионы записей, хошь XML на 100 МБайт. Ничего уже давно не удивляет. Просто надо все это знать и уметь. На нативном фоксе все это можно, что радует
|
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
AndyNigmatec Сообщений: 1550 Откуда: Волгоград Дата регистрации: 28.06.2015 |
- работает Олег, поверь ))) - это ТС сомневается пчему-то... тока вот что потом с такой монструозной экселькой делать - это да, бааальшой вопрос Ну да наши органы любат херней заниматься - как пример - файл реестра предельных зарегестрированных цен на препараты ЖНВЛС - он именно в экселе с сайта скачивается - и работать с ним напрямую - геморно весьма |
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Да верю я ) Я как-то экспериментировал forum.foxclub.ru и у меня работает, но ставлю эту механику в свою подпрограмму - и бац, ОЛЕ-ошибка какая-то на количествах >64К. Убил на нее полдня, надоело, и пошел другим путем.
Да, 2Симпле, вспомнил, чем не подошло читать экселем DBF - мемо-поля эксель не видит, а мне надо было длинные названия какие-то, пришлось через CSV. В CSV можно символы перевода строки закодировать, а потом в экселе уже - раскодировать Replace, и получатся ячейки с исходным многострочным текстом... Вроде так... |
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Вот только не надо мне муйню говорить про дело. Я давно живу, в курсе. От той технической стороны до этой масса планктона. Вполне вероятно что здесь девочка в списке возможных форматов увидела единственное знакомое слово и поехало. Или министерство и денег на ексель выдает. Ну и про нативность. Ага. Оле автоматизация как раз 'чистый фокс'. |
Re: как же все-таки передать разом таблицу dbf в excel_2007 | |
---|---|
AndyNigmatec Сообщений: 1550 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Кстати, при передачи целиком массивом - мемо тож сразу выводится )))
|
© 2000-2024 Fox Club  |