Topic: Импорт данных из Excel

Доброго! Подскажите как правильно импортировать (прочитать) данные из Excel (xls, xlsx, итд) с обходом всех видимых листов, желательно не построчно а массивами данных.

ps: в паскале, можно сказать, я еще 0.
На барске это выглядит примерно так:
' Обходим все листы в книге
    For Each ShtWS In ActiveWorkbook.Worksheets
        'Обрабатываем только видимые листы
        If ShtWS.Visible = xlSheetVisible Then

        'Последняя строка
        iRow = ShtWS.UsedRange.Row - 1 + ShtWS.UsedRange.Rows.Count

        'Присваиваем массиву диапазон данных на ShtWS (Заносим данные в массив)
        ReDim R_data(1 To iRow, 1 To 15)
        R_data = ShtWS.Range(ShtWS.Cells(1, 1), ShtWS.Cells(iRow, 15))

Re: Импорт данных из Excel

Приветствую.


пример

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
    Excel: Variant;
    Sheet: Variant;
    XLSFile: string;
    i, c: integer;
    iRow, iCol, Rows, Cols: integer;
    ar: array [1..15, 1..15] of string;
begin
    Excel := CreateOleObject('Excel.Application');
    XLSFile := 'd:\test.xlsx';

    Excel.Workbooks.Open(XLSFile);

    c := Excel.Workbooks[ExtractFileName(XLSFile)].WorkSheets.Count;
    for i := 1 to c do
    begin
        Sheet := Excel.Workbooks[ExtractFileName(XLSFile)].WorkSheets[i];
        if Sheet.Visible then
        begin
            Rows:=Sheet.UsedRange.Rows.Count;
            Cols:=Sheet.UsedRange.Columns.Count;

            for iRow := 1 to Rows do
                for iCol := 1 to Cols do
                    ar[iRow, iCol] := Sheet.Cells(iCol, iRow);
        end;
    end;
end;
Dmitry.

Re: Импорт данных из Excel

можно пример проекта и для чего она нужна?

4 (edited by nexochyka 2017-12-07 21:55:16)

Re: Импорт данных из Excel

Дмитрий, благодарю (еще не проверял).

jonibek примера проекта еще нет, пока что рассматриваю возможность полноценного переезда с MSA в данную БД.
А так в двух словах, есть ежедневные сводки в формате excel и для удобства работы с ними, а так же ведения хронологии требуется их хранение в нормальном виде (в БД).