Чтение xls с помощью пакета laz_fpspreadsheet

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Чтение xls с помощью пакета laz_fpspreadsheet

Сообщение smith7 » 20.08.2013 21:02:50

Нужно прочитать данные из xls для сравнения с db в mysql.
В комплекте с пакетом идет chm, в котором есть описан метод GetCellByIndex
Но, почему-то он отсутствует в пакете.
Скрин, http://clip2net.com/clip/m62821/1377017 ... ?nocache=1
История повторяется на windows

Вместе с пакетом идет пример.
Код: Выделить всё
CurCell := MyWorkSheet.GetFirstCell();
  for i := 0 to MyWorksheet.GetCellCount - 1 do
  begin
    WriteLn('Row: ', CurCell^.Row,
     ' Col: ', CurCell^.Col, ' Value: ',
     UTF8ToAnsi(MyWorkSheet.ReadAsUTF8Text(CurCell^.Row,
       CurCell^.Col))
     );
    CurCell := MyWorkSheet.GetNextCell();
  end;


Если следовать примеру, то нужно полностью перебирать файл, чтобы проверить на каком столбце я нахожусь?
smith7
новенький
 
Сообщения: 11
Зарегистрирован: 17.07.2013 06:05:33

Re: Чтение xls с помощью пакета laz_fpspreadsheet

Сообщение amateur » 21.08.2013 02:43:49

если память не изменяет то возможен доступ и по координатам (только если они заведомо известны :)).

Код: Выделить всё
    { Data manipulation methods - For Cells }
    function  FindCell(ARow, ACol: Cardinal): PCell;
    function  GetCell(ARow, ACol: Cardinal): PCell;
    function  GetCellCount: Cardinal;
    function  GetFirstCell(): PCell;
    function  GetNextCell(): PCell;
    function  GetLastColNumber: Cardinal;
    function  GetLastRowNumber: Cardinal;
    function  ReadAsUTF8Text(ARow, ACol: Cardinal): ansistring;
    function  ReadAsNumber(ARow, ACol: Cardinal): Double;
    function  ReadAsDateTime(ARow, ACol: Cardinal; out AResult: TDateTime): Boolean;


судя по сорцам, можно прыгать как душе угодно. В Вашем случае, кажись, со строки ReadAsUTF8Text надо начинать :lol:

Только вот файлики xls он не все читает. И не любит "кривые".

В комплекте с пакетом идет chm
надо наоборот :) В комплекте с chm идут сорцы...
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Чтение xls с помощью пакета laz_fpspreadsheet

Сообщение smith7 » 22.08.2013 19:40:15

отлично, тогда...
как узнать сколько строк в файле, и пройтись по циклу, по конкретным столбам (не перебирая все)
smith7
новенький
 
Сообщения: 11
Зарегистрирован: 17.07.2013 06:05:33

Re: Чтение xls с помощью пакета laz_fpspreadsheet

Сообщение amateur » 22.08.2013 20:14:15

Указали столбец и "побежали" по нему в цикле. В чем сложность то?
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Re: Чтение xls с помощью пакета laz_fpspreadsheet

Сообщение v-t-l » 23.08.2013 09:45:56

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

amateur писал(а):
Код: Выделить всё
    function  GetLastColNumber: Cardinal;
    function  GetLastRowNumber: Cardinal;

v-t-l
энтузиаст
 
Сообщения: 741
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 234

Рейтинг@Mail.ru