Re: замена команды Import from xls | |
---|---|
Olegv Сообщений: 69 Откуда: Санкт-Петербург Дата регистрации: 29.11.2007 |
Вот такая конструкция заработала:
#DEFINE Excel5 39 lcFile = GETFILE() IF EMPTY(lcFile) THEN RETURN ENDIF ?lcfile Local loExcel loExcel=createobject("Excel.Application") With loExcel .workbooks.open("lcFile") .ActiveWorkbook.SaveAs (lcFile,Excel5,"","",.f.,.f.) .ActiveWorkbook.close(.f.) EndWith теперь вопрос: Т.к. файл уже существует, то эксель просит подтвердить. Где написать ему "Yes"? |
Re: замена команды Import from xls | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Почему бы просто не написать:
|
Re: замена команды Import from xls | |
---|---|
alextash Сообщений: 2281 Откуда: НСК Дата регистрации: 03.05.2006 |
Исправлено 1 раз(а). Последнее : alextash, 16.11.11 14:11 |
Re: замена команды Import from xls | |
---|---|
Olegv Сообщений: 69 Откуда: Санкт-Петербург Дата регистрации: 29.11.2007 |
Вот, что в итоге получилось:
------------------ #DEFINE Excel5 39 && кроме кода 39 ничего у меня не заработало исходные файлы имеют код 56 lcFile = GETFILE('xls') IF EMPTY(lcFile) THEN RETURN ENDIF lcfile2='D:\tmpExcel.xls' && обнаружил, что Эксель 5 не любит длинные имена файлов - поэтому *потребовался промежуточный файл Local loExcel loExcel=createobject("Excel.Application") With loExcel .workbooks.open(lcFile) && кавычки не нужны lofileformat1=.ActiveWorkbook.fileformat && это если кому интересно посмотреть в каком ?lofileformat1 && формате исходный файл .ActiveWorkbook.SaveAs (lcFile2,Excel5,"","",.f.,.f.) && другие комбинации не работают lofileformat=.ActiveWorkbook.fileformat && а здесь смотрим код выходного файла ?lofileformat .ActiveWorkbook.close(.f.) EndWith filenamespxls='D:'+'\BDV1_DATA\BDV1_KD\bdv1kdspxls' && здесь я готовлю файл, куда будет ON ERROR MESSAGEBOX("Файл уже открыт",4) && переписана таблица эксель USE &filenamespxls IN 0 EXCLUSIVE ON ERROR SELECT bdv1kdspxls KEYBOARD 'Y' ZAP ON ERROR MESSAGEBOX("Файл д.б. сохранен в версии 5/95",4) && это если что-нибудь не получится SELECT bdv1kdspxls APPEND FROM &lcFile2 TYPE XL8 ON ERROR DELETE FILE &lcfile2 && удаляю вспомогательный файл BROWSE && смотрим, что получили --------- Поиском лучше пореже пользоваться - толку нуль, а читать болтовню трехлетней давности скучно. |
Re: замена команды Import from xls | |
---|---|
Olegv Сообщений: 69 Откуда: Санкт-Петербург Дата регистрации: 29.11.2007 |
Еще маленькое замечание:
В таблице Эксель не должно быть многострочных записей. Только в одну строку. |
Re: замена команды Import from xls | |
---|---|
Mitchman Сообщений: 9978 Откуда: Николаев Дата регистрации: 24.05.2002 |
ужос ------------------ - «свидомые украинцы озабочены не столько созданием украинской культуры, сколько уничтожением русской» - Олесь Бузина |
Re: замена команды Import from xls | |
---|---|
Igor VS Сообщений: 2193 Откуда: Харьков Дата регистрации: 26.01.2011 |
Зато ваш код читать очень весело. ------------------ Трехколесный пароход |
Re: замена команды Import from xls | |
---|---|
Olegv Сообщений: 69 Откуда: Санкт-Петербург Дата регистрации: 29.11.2007 |
Можете даже поржать... |
Re: замена команды Import from xls | |
---|---|
Olegv Сообщений: 69 Откуда: Санкт-Петербург Дата регистрации: 29.11.2007 |
И вот такое в поиске тоже окажется.... Всем удачи, веселья, досвидос! |
Re: замена команды Import from xls | |
---|---|
Baga Сообщений: 540 Откуда: г. Махачкала Дата регистрации: 03.06.2006 |
Такая же проблема была и у меня. Поэтому я давно отказался от непосредственного импорта в VFP. Я делаю так:
------------------ Багавудин Мирзаев |
Re: замена команды Import from xls | |
---|---|
Igor VS Сообщений: 2193 Откуда: Харьков Дата регистрации: 26.01.2011 |
Ржут лошади и вы вместе с ними. PS. Видимо благородный дон считает недостойным себя копаться в разговорах всякой черни. Типа - пусть другие сделают всю грязную работу, а ему подадут готовый ответ. ------------------ Трехколесный пароход Исправлено 1 раз(а). Последнее : Igor VS, 19.11.11 04:01 |
Re: замена команды Import from xls | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Как сказать. Когда импорт будет работать 10-20 минут вместо 1 секунды то придётся задуматься о чистоте кода. Я выше приводил пример, как забирать данные на порядки быстрее - без абсолютно ненужных Select-ов, и не по 1 ячейке за раз, а сразу кучу (хоть вообще всё что есть на листе, если памяти хватает). ------------------ WBR, Igor |
Re: замена команды Import from xls | |
---|---|
medstrax Забанен Сообщений: 5964 Дата регистрации: 23.03.2007 |
А кто-нибудь пробовал тупо парсить .xls на диске?
Вряд ли это востребовано, но все же. Разобрать формат нетрудно... |
Re: замена команды Import from xls | |
---|---|
Igor VS Сообщений: 2193 Откуда: Харьков Дата регистрации: 26.01.2011 |
Оно может разобрать и не трудно, но только сам Эксель справится с этим лучше. Тем более, что форматы файлов в разных версиях отличаются. Между какими-то версиями различия незначительные, между другими - кардинальные. К тому же придется быть в роли постоянного догоняющего - отслеживая выход новых версий, проверяя совместимость кустарной логики с новыми форматами и дорабатывая ее при необходимости. Ото больше в жизни заняться не чем. ------------------ Трехколесный пароход |
Re: замена команды Import from xls | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
xls вряд-ли, а xlsx - вполне себе решаемо (в плане несложно). Надо на сайте Михаила Дроздова посмотреть - он то-ли вордовские, то-ли экселевские документы таким образом разбирал. Там то по сути XML внутрях...
------------------ WBR, Igor |
Re: замена команды Import from xls | |
---|---|
medstrax Забанен Сообщений: 5964 Дата регистрации: 23.03.2007 |
ага, xlsx хорошо документирован, xls плохо, но разобрать не трудно, в сети доков весьма.
|
Re: замена команды Import from xls | |
---|---|
glaz58 Автор Сообщений: 812 Откуда: Воронеж Дата регистрации: 09.02.2008 |
При импорте из файла xl5 часть данных почему-то теряется в dbf, несмотря на то, что в экселе все данные кажутся на месте (MS Excel предупреждает при сохранении в формате xl5). Выход (для меня) нашёлся в Libre Office. Среди форматов для сохранения предлагает dbf. MS Excel почему-то "забыл", что есть такой формат.
|
Re: замена команды Import from xls | |
---|---|
alextash Сообщений: 2281 Откуда: НСК Дата регистрации: 03.05.2006 |
с тех пор как Микрософт перестал поддерживать FoxPro.
Есть ещё формат csv. А вообще легче забрать данные из Excel через программу. |
Re: замена команды Import from xls | |
---|---|
glaz58 Автор Сообщений: 812 Откуда: Воронеж Дата регистрации: 09.02.2008 |
Для меня оказалось легче сохранить в dbf с помощью Libre Office. Как-то ни одна программа не заработала. Они оказались сложными при запуске. Программа чтения из xlsx->dbf должна быть простая: на входе имя файла xlsx на выходе таблица dbf. Если кому-то нужна сложная интерпретация, это другое дело. Тема называется: "Замена команды импорта из xls".
|
Re: замена команды Import from xls | |
---|---|
ABB Сообщений: 149 Откуда: Санкт-Петербург Дата регистрации: 21.10.2006 |
|
© 2000-2024 Fox Club  |