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




Пост N: 2372
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 21.05.12 16:52. Заголовок: Снова EXCEL (продолжение)


Ранее с Excel из Harbour ни когда не работал.
Поставили тут задачу.
У некоторых поставщиков есть определенные формы заказов.
Набраны они в Excel. Сейчас народ руками заполняет эти формы
и шлет по электронке поставщикам.
Задача сводится к тому что бы в этих формах находить
нужные коды товара и в нужной ячейке проставлять заказ.
Может ткнет кто носом с чего начать что бы не напороться на грабли.
Спасибо
Сами формы тут http://zalil.ru/33279066

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 190 , стр: 1 2 3 4 5 6 7 8 9 10 All [только новые]


администратор




Пост N: 7025
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 10.03.19 21:57. Заголовок: Vlad04 Можно погугл..


Vlad04
Можно погуглить "чтение файла excel ole"

А строки можно сразу посчитать

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




Пост N: 3827
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.03.19 08:07. Заголовок: Свойство Value относ..


Свойство Value относится к объекту Range. Можно присвоить Range диапазону ячеек внутри строки, и получить Value как массив.
Можно получить значения сразу нескольких строк как двумерный массив.

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


Пост N: 810
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 11.03.19 15:26. Заголовок: Pasha Попробую пос..


Pasha

Попробую построчно считывать. При записи подобным образом скорость кратно возрастает

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


Пост N: 1441
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 11.03.19 17:33. Заголовок: Vlad04 пишет: нужно..


Vlad04 пишет:

 цитата:
нужно прочесть данные с большого Excel файла


Если это просто чья то выгрузка в Excel - читать можно через ODBC

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


Пост N: 811
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 11.03.19 21:39. Заголовок: Haz Выгрузка чья-то..


Haz
Выгрузка чья-то, но формат определённый.
Попробовал читать в массив
- построчно быстрее,чем по клеточно
- а если всю таблицу в массив, так вообще улёт, совсем немного отстает от DBF.

Через ODBC, наверно, скорость будет как с родной таблицей ?

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


Пост N: 1442
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 11.03.19 23:38. Заголовок: Vlad04 пишет: Через..


Vlad04 пишет:

 цитата:
Через ODBC, наверно, скорость будет как с родной таблицей ?


В принципе не тормозит. Где-то был пример чтения через ODBC, если сам не найдёшь, могу поискать у себя. Точно баловался лет 7 назад, тк была задача чтения и записи больших таблиц Excel.

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


Пост N: 812
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 12.03.19 19:20. Заголовок: Небольшой косочек ко..


Небольшой косочек кода решил выложить, так как с некоторыми моментами пришлось повозиться

 цитата:

ExcelApl - имя объекта Excel при открытии
oAS := ExcelApl:ActiveSheet()

Количество строк в Excel странице
mlast := ExcelApl:ActiveSheet:Range("A1"):CurrentRegion:Rows:Count

Копирование в переменную mCel (объявлена, как {}) необходимой области страницы Excel -
3 столбца на всю высоту.В столбцах числовые значения (2) и в одном - Дата.

mCel:=oAS:Range('D'+Alltrim(Str(1,5))+':F'+Alltrim(Str(mlast,5))):Value

Обработка

nn:=2
for i:=2 to mlast // собственно данные со второй строки
nWsrst:=(datTek - mCel[i,1] )/365.25 // в итоге число, исходное значение ДАТА
nPOL:=Int(mCel[i,2] ) // число
nSmk:= Int(mCel[i,3]) // число

....
next i



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


Пост N: 813
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 12.03.19 19:22. Заголовок: Формат исходного док..


Формат исходного документа csv и xls. Оффис 2003.

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




Пост N: 7026
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.03.19 23:47. Заголовок: Vlad04 хз я считаю ..


Vlad04
хз я считаю строки и столбцы примерно так
a:=oSheet:UsedRange:Rows:Count
b:=oSheet:UsedRange:Columns:Count

это после
oWorkBook := oExcel:Workbooks:Open(cfile)
oSheet := oExcel:ActiveSheet()

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


Пост N: 1443
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 13.03.19 10:41. Заголовок: Vlad04 Через ODBC, ..


Vlad04

 цитата:
Через ODBC, наверно, скорость будет как с родной таблицей



Попробуй этим , просто интересно
Выгрузки в Excel где первая срока - имена полей а потом сам массив данных читает влет
ODBCDemo.prg
 
#require "rddsql"
#require "sddodbc"

#include "simpleio.ch"
#include "dbinfo.ch"

REQUEST SDDODBC, SQLMIX
REQUEST HB_CODEPAGE_RU1251, HB_CODEPAGE_RU866


PROCEDURE Main()

#if defined( __HBSCRIPT__HBSHELL )
rddRegister( "SQLBASE" )
rddRegister( "SQLMIX" )
hb_SDDODBC_Register()
#endif

Set( _SET_DATEFORMAT, "yyyy-mm-dd" )
HB_SETCODEPAGE( "RU1251" )

rddSetDefault( "SQLMIX" )
? "Connect:", rddInfo( RDDI_CONNECT, { "ODBC", "Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=TEST.XLS;" } )
? "Use:", dbUseArea( .T., , "select * from sheet1", "test" )
? "Alias:", Alias()
? "DB struct:", hb_ValToExp( dbStruct() )
wait

dbGoTop()
Browse()
dbCloseArea()

RETURN


Browse там для наглядности, обработку можно сделать в цикле while !eof() ... end, доступ к полям через fieldget( n )
свой XLS переименуй в TEST.XLS и кинь в папку с программой. ВАЖНО ярлычек с данными в EXL должен называться sheet1
или поправь в исходнике под свое название
С MiniGui под консоль собирается так
c:\MiniGui\batch\compile.bat ODBCDemo /l hbodbc /l odbc32 /l sddodbc /l hbsqldd /c %1 %2 %3 %4 %5 %6 %7 %8 %9

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

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