Excel OLE 读取筛选后的数据
//uses comobj
procedure Tfrm1.Button1Click(Sender: TObject);
var
ExcelApp, Sheet, MySheet: OleVariant;
strExcelFile, str_SheetName: string;
i, iTotRows: integer;
begin
inherited;
with TOpenDialog.Create(nil) do
begin
DefaultExt := 'xls';
Filter := 'Excel 文件(*.xlsx;*.xls)|*.xlsx;*.xls';
//InitialDir := glbStrExcelPath; //缺省路径
FileName := '';
title := '导入Excel筛选数据 ';
if Execute then
begin
strExcelFile := FileName;
end;
end;
ExcelApp := CreateOleObject('Excel.Application');
try
ExcelApp.workBooks.Open(strExcelFile);
ExcelApp.DisplayAlerts := False; //屏蔽 ExcelApp.Quit时 "是否保存Sheet1?"对话框
ExcelApp.visible := False; //可见
str_SheetName := ExcelApp.Workbooks[1].Worksheets[1].Name;
sheet := ExcelApp.workbooks[1].worksheets[str_SheetName];
// ShowMsg('总行数:' + VarToStr(ExcelApp.ActiveSheet.usedRange.Rows.count));
//iTotRows:= sheet.UsedRange.Rows.count;
//ExcelApp.ActiveSheet.UsedRange.Copy;
sheet.UsedRange.Copy;//复制已经筛选的数据
MySheet := ExcelApp.WorkSheets.Add;、//插入新的工作表
MySheet.Paste; //新的工作表中粘贴
... // 然后从新的工作表中读取内容
finally
Screen.Cursor := crDefault;
ExcelApp.Quit;
end;
end;
浙公网安备 33010602011771号