Mic777
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору procedure TForm1.Button1Click(Sender: TObject); const xlCellTypeLastCell = $0000000B; //Тип последней заполненной ячейки var XLApp, Sheet: OLEVariant; RangeMatrix: Variant; x,y,iColIndex, iRowIndex: integer; XLSFile: string; begin XLSFile:='D:\12.xlsx'; //Создаем объект Excel XLApp := CreateOleObject('Excel.Application'); try //Делаем окно Excel невидимым XLApp.Visible := True; //Открываем Excel XLApp.Workbooks.Open(XLSFile); //Создаем объект страница(Sheet) //и указываем номер листа в книги с которого будем осуществлять чтение Sheet := XLApp.Workbooks[ExtractFileName(XLSFile)].WorkSheets[1]; //активируем последнюю ячейку на листе Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate; //получаем номер последней строки x := Sheet.UsedRange.Rows.Count; //получаем номер последнего столбца y := Sheet.UsedRange.Columns.Count; //устанавливаем количество столбцов в CxGrid showmessage('Строк '+IntToStr(x)+' Стоблцов '+IntToStr(y)); with ViewList.DataController do begin // BeginUpdate; // try RecordCount := XLApp.ActiveCell.Row; for iRowIndex := 0 to x-1 do for iColIndex := 0 to y-1 do begin showmessage(Sheet.Cells[iRowIndex+1,iColIndex+1]) ; Values[iRowIndex, iColIndex] := Sheet.Cells[iRowIndex+1,iColIndex+1]; {ViewList.Columns[0].DataBinding.ValueType := 'String'; ViewList.Columns[1].DataBinding.ValueTypeClass := TcxStringValueType; ViewList.Columns[2].DataBinding.ValueTypeClass := TcxIntegerValueType; ViewList.Columns[3].DataBinding.ValueTypeClass := TcxFloatValueType; ViewList.Columns[4].DataBinding.ValueTypeClass := TcxFloatValueType; ViewList.Columns[5].DataBinding.ValueTypeClass := TcxStringValueType; ViewList.Columns[6].DataBinding.ValueTypeClass := TcxStringValueType;} end // finally z // EndUpdate; // end; end; finally if not VarIsEmpty(XLApp) then begin XLApp.Quit; XLAPP := Unassigned; Sheet := Unassigned; end; end; end; | Всего записей: 90 | Зарегистр. 15-12-2005 | Отправлено: 14:18 09-02-2015 | Исправлено: Mic777, 14:27 09-02-2015 |
|