参考一下这个 uses Excel2000这个单元
function LoadExcel: Boolean;
var
RangeMatrix: Variant;
OpenDialog1: TOpenDialog;
iRE: integer;
i: Integer;
A,B,C: String;
MsExcel, MsExcelWorkBook, MsExcelWorkSheet: Variant;
begin
Result := false;
OpenDialog1:=TOpenDialog.Create(nil);
try
MsExcel := CreateOleObject('Excel.Application');
//记得在uses中引入文件EXCEL2000这个单元
OpenDialog1.FileName:='*.csv;*.xls';
if not OpenDialog1.Execute then exit;
try
MsExcelWorkBook := msExcel.Workbooks.Open(OpenDialog1.FileName);
MsExcelWorkSheet := msExcel.Worksheets.Item[1];
except
Application.Messagebox('连接Excel失败,请重试!','错误提示',0);
Result := false;
exit;
end;
Application.ProcessMessages;
try
for IRE := 2 to MsExcelWorkSheet.Rows.Count do
begin
A := Trim(MsExcelWorkSheet.Range['A'+Inttostr(IRE)].Value);
.....
//将数据存入数据库
......
end;
except
Application.Messagebox('导入信息出错,请重试!','提示',MB_ICONERROR);
Result := false;
exit;
end;
Result := true;
finally
MsExcel.WorkBooks.Close;
OpenDialog1.Free;
MsExcel.Quit;
Application.ProcessMessages;
end;
end;
http://www.connectionstrings.com/excel
数据已经读取出来了,向数据库insert你不会吗?
for i := 2 to MsExcelWorkSheet.Rows.Count do
begin
if trim(MsExcelWorkSheet.Range['A' + IntToStr(i)].Value)='' then break;
showmessage(trim(MsExcelWorkSheet.Range['A' + IntToStr(i)].Value));
a:= trim(MsExcelWorkSheet.Range['A' + IntToStr(i)].Value);
with AdoQuery1 do
begin
close;
sql.text := ' Insert into Test(iusername,iusernumber,icardno,iduty,'+
' isex,iwork,iaddress,ipostnumber,itel,ire) values('+
' :iusername,:iusernumber,:icardno,:iduty,'+
' :isex,:iwork,:iaddress,:ipostnumber,:itel,:ire)';
Parameters.ParamByName('iusername').Value := a;
Parameters.ParamByName('iusernumber').Value := trim(MsExcelWorkSheet.Range['B' + IntToStr(i)].Value);
Parameters.ParamByName('icardno').Value := trim(MsExcelWorkSheet.Range['C' + IntToStr(i)].Value);
Parameters.ParamByName('iduty').Value := trim(MsExcelWorkSheet.Range['D' + IntToStr(i)].Value);
Parameters.ParamByName('isex').Value := trim(MsExcelWorkSheet.Range['E' + IntToStr(i)].Value);
Parameters.ParamByName('iwork').Value := trim(MsExcelWorkSheet.Range['F' + IntToStr(i)].Value);
Parameters.ParamByName('iaddress').Value := trim(MsExcelWorkSheet.Range['G' + IntToStr(i)].Value);
Parameters.ParamByName('ipostnumber').Value := trim(MsExcelWorkSheet.Range['H' + IntToStr(i)].Value);
Parameters.ParamByName('itel').Value := trim(MsExcelWorkSheet.Range['I' + IntToStr(i)].Value);
Parameters.ParamByName('ire').Value := trim(MsExcelWorkSheet.Range['J' + IntToStr(i)].Value);
ExecSql;
end;
end;