On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение





Пост N: 352
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 04.07.09 20:49. Заголовок: OLE: Сделать DBF из XLS


Возникла такая вот необходимость... есть у кого рабочий вариант? Нужно ведь проверять все колонки на содержание в первой строке беспробельного латинского наименования, и чтобы ни одно наименование не повторялось, приводить ширину колонки к целочисленной, и наверное кучу ещё тонкостей...
И ещё интересно: в Excel 2007 через OLE сохранение в виде DBF-файла сработает, или она там обрублено напрочь - в меню сохранения файла ведь DBF-варианта уже нет...

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 59 , стр: 1 2 3 All [только новые]





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 04.07.09 22:00. Заголовок: А в чем собственно п..


А в чем собственно проблема, отрыть файл XLS через OLE, почитать его в цикле и зписать в DBF ?

Спасибо: 0 
Цитата Ответить





Пост N: 353
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 05.07.09 17:40. Заголовок: fil пишет: А в чем ..


fil пишет:

 цитата:
А в чем собственно проблема


Проблема далеко не одна, часть из них я указал прямо в своём вопросе, и ещё может быть проблема с записью DBF в Excel 2007, - ты что, только название темы прочёл, а сообщение решил не читать?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 354
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 13.07.09 08:16. Заголовок: Народ, так что, никт..


Народ, так что, никто не решал эту проблему?
Проблема: нужно закинуть в базу накладную или прайс. Требовать от поставщиков юзверя DBF-файл уже нереально - 2007-й Офис, на который все потихоньку переходят, файлы в DBF-формате не сохраняет, да и не все с этим справляются даже в тех версиях M$ Office (чтобы колонки были целочисленной ширины, и т.п.). Остаётся файл XLS. Принимать его в виде XLS - проверить колонки, сформировать массив - наверное можно, НО работы море всё это реализовывать, при этом всё для принятия DBF-файла в программе уже сделано. Вывод: надо из XLS-файла самому делать DBF-файл, и принимать в базу уже его. Странно, что никто раньше до этого решения не додумался...

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 355
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 18.08.09 20:40. Заголовок: Почти справился с за..


Почти справился с задачей, но возник маленький ньюанс: надо как-то определять, записано в ячейке Excel'я число 40.00 или 40 целое, а как это сделать - не представляю... Подскажите, люди добрые!
А ещё бы лучше определять это уже в Harbour'e, когда значение из Excel'я уже прочитано. Но тоже непонятно, как именно это сделать.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 731
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 18.08.09 22:31. Заголовок: Лукашевский пишет: ..


Лукашевский пишет:

 цитата:
надо как-то определять, записано в ячейке Excel'я число 40.00 или 40 целое


Обьект Range свойство NumberFormat - для 40,00 будет определено как "0.00", для 40 - "0"


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 356
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 19.08.09 08:54. Заголовок: Петр пишет: Обьект ..


Петр пишет:

 цитата:
Обьект Range свойство NumberFormat


Спасибо.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 900
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.09 13:39. Заголовок: Лукашевский пишет: ..


Лукашевский пишет:

 цитата:
Почти справился с задачей



А результат покажешь ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 357
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 20.08.09 14:47. Заголовок: Andrey пишет: А рез..


Andrey пишет:

 цитата:
А результат покажешь ?


Когда убедюсь, что оно работает :-)
Написать мало, отладить надо, однако.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 358
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 20.08.09 17:19. Заголовок: Очередная проблема: ..


Очередная проблема: не читается из XLS-файла дата, по крайней мере по oSheet:Cells(y, i):Value

Смотрю в XLS-файл - а там все значения дат в этой колонке отображены решётками (########). Хотя когда какая-либо ячейка в этой колонке активна, в строке значения (fx) высвечивается нормальная дата, правильное значение. Смотрю ширину поля: 8. Может быть дело в этом, и надо ставить ширину 10, но мне-то нужно, чтобы функция работала всегда, безотносительно ширины колонки в Excel'e! Опять-таки, каким-то образом сам Excel может читать такие значения - ведь в строке значений они высвечиваются правильно...

Что с этим делать - пока не представляю. Может, есть какие-то ещё функции получения значения из ячейки?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 359
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 24.08.09 02:28. Заголовок: Поставил ширину коло..


Поставил ширину колонки даты 10, всё отображается без проблем, НО: читаются из ячеек этой колонки всё равно пустые значения!!!
Никто с такой фишкой не сталкивался?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 360
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 15.09.09 22:53. Заголовок: Ещё одна проблема: о..


Ещё одна проблема: открываю с помощью WorkBooks:Open() файл, имя которого содержит пробелы. Excel выдаёт ошибку: Excel.Application:WORKBOOKS/14 DISP_E_BADPARAMCOUNT: OPEN что в общем понятно. Непонятно только, как с этим бороться.

Пробовал заключать имя файла в кавычки - не помогает...

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1209
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.09.09 13:19. Заголовок: Пробелы в имени тут ..


Пробелы в имени тут ни при чем. Скорее всего, имя документа надо преобразовать в кодировку ansi, или указан неверный путь (надо указывать полный путь к файлу)


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 361
Зарегистрирован: 08.04.06
ссылка на сообщение  Отправлено: 22.09.09 05:31. Заголовок: Pasha пишет: надо п..


Pasha пишет:

 цитата:
надо преобразовать в кодировку ansi


Да, действительно, проблема была в кодировке...
Так что осталась всего одна проблема - дата из Exel'евского файла всегда читается пустая...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 974
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.12.09 22:43. Заголовок: Потребовалось теперь..


Потребовалось теперь мне сделать из XLS файл DBF.
Структура простая: Текстовое поле, числовое поле (целое), числовое поле (сумма).

Как узнать сколько в файле XLS кол-во строк, т.е. как в DBF функция LASTREC() или RecCount() ?
И как сделать перебор "полей" XLS - файла ?
Кинь пожалуйста пример ....
Заранее спасибо !

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1256
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 02.12.09 09:36. Заголовок: oRange = oExcel:Acti..


oRange = oExcel:ActiveCell:SpecialCells(xlLastCell)
oRange:Row
oRange:Column


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 975
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.12.09 18:20. Заголовок: Не совсем понятно !!..


Не совсем понятно !!!

Хотелось бы в таком стиле:

USE OPLANA NEW

nRecKolvo := LASTREC()

SELECT OPLATA
GOTO TOP
FOR nI := 1 TO nRecKolvo
GOTO nI
// моя обработка
//
NEXT




Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1259
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 02.12.09 21:28. Заголовок: Смысл в том, что выб..


Смысл в том, что выбирается последняя, т.е. нижняя правая ячейка документа. Затем определяются ее координаты. Это и есть количество строк и столбцов в документе. А затем - традиционный двойной цикл с обходом всех ячек.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 980
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.12.09 08:01. Заголовок: А как открыть XLS фа..


А как открыть XLS файл, чтоб Екселя на экране не было ?

Дайте пожалуйста пример .....
А то я только с Вордом работать умею (чуть-чуть).....


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1260
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 03.12.09 09:13. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как открыть XLS файл, чтоб Екселя на экране не было ?



oExcel := TOleAuto():New( "Excel.Application" )
oExcel:Visible := .f.
oExcel:Workbooks:Open( cFile, 0 )


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 981
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.12.09 09:31. Заголовок: А как отловить, что ..


А как отловить, что файл уже открыт ?



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 59 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет