Re: Как прочитать данные в Excelе из C++ Builder
От: vav Россия  
Дата: 24.05.02 01:37
Оценка: 1 (1)
H>помогите, плиз, примером
H>Как прочесть содержимое ячеек из существующего файла Excel с помощью C++ Builder

H>а то я тут ковыряюсь, да разобраться не могу


не могу сказать, что функция, написанная ниже, оптимальна, но представление как "просто" работать с екселем дает. Писана для жены, которая хотела прочитать данные из екселя не задумываясь как это делать -))

unit UExcelReader;

interface

uses OleServer, ComCtrls,ComObj,Excel97,ActiveX;

function ReadRangeFromExcel
  (FileName, //имя файла
  ListName:string; // название листа
  RangeFrom,RangeTo:string // начальная и конечная 
  //ячейки например 'A1', 'F19'
   ):variant; //возвращает массив вариантов

implementation

function ReadRangeFromExcel(FileName,ListName:string;RangeFrom,RangeTo:string):variant;
var
  ExcelApplication1: TExcelApplication;
  IWorkbook: Excel97.ExcelWorkbook;
  ISheet: Excel97.ExcelWorksheet;
  IRange: Excel97.Range;
  V:variant;
begin
  // запускаем ексель
  if not Assigned(ExcelApplication1)
  then ExcelApplication1 := TExcelApplication.Create(Nil);
  //
  try
    ExcelApplication1.ConnectKind := ckRunningOrNew;
    ExcelApplication1.Connect;
    ExcelApplication1.Visible[0] := False;
    // подключаемся к книге
    IWorkbook := ExcelApplication1.Workbooks.Add(FileName,0);
    ISheet := IWorkbook.Worksheets.Item[ListName] as Excel97.ExcelWorksheet;
    IRange := ISheet.Range[RangeFrom,RangeTo];
    v := VarArrayCreate([0,0,IRange.Columns.Count-1,IRange.Rows.Count-1],varVariant);
    v := IRange.Value;
  finally
    FreeAndNil(ExcelApplication1);
  end;
end;

end.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.