EXCEL的存储目录为:d:\
EXCEL的名称为test.xlsx
数据存储在 sheet1的 c3:e6这个区域数据存储样式如下
name code age
hf a001 17
hw a002 18
fw b001 20我想用SQL把相应数据取出来插入到SQL 2005数据库的TEST表中,其中TEST表的结构:
name code age
EXCEL的名称为test.xlsx
数据存储在 sheet1的 c3:e6这个区域数据存储样式如下
name code age
hf a001 17
hw a002 18
fw b001 20我想用SQL把相应数据取出来插入到SQL 2005数据库的TEST表中,其中TEST表的结构:
name code age
procedure TForm1.downExcel(StringGrid: TStringGrid;FileName: String;Col,CheckCol : Integer);
var
AStrID : String;
ARow,ACol,//指定读起Excel数据的行与列
i,j,AMaxCol : Integer;
begin
AMaxCol := Col;
StringGrid.ColCount := 1;
StringGrid.RowCount := 1;
FExcelApp := Unassigned;
FExcelApp := CreateOleObject('Excel.Application');
FWorkBook := CreateOleObject('Excel.Sheet');
try
FWorkBook := FExcelApp.WorkBooks.Open(FileName);
FWSheet := FWorkBook.Sheets[1];
ARow := 4;
ACol := 3;
PlShowMsg.Visible := True;
while ARow<=6 do
begin
PlShowMsg.Caption := '导入条数...'+IntToStr(ARow);
dataset.append;
Application.ProcessMessages;
dataset.FieldBYName('name').asString := FWSheet.cells[ARow,ACol].value;
dataset.FieldBYName('code').asString := FWSheet.cells[ARow,ACol+1].value;
dataset.FieldBYName('age').asString := FWSheet.cells[ARow,ACol+2].value;
dataset.Post;
Inc(ARow);
end;
PlShowMsg.Visible := False;
finally
FWorkBook := Unassigned;
FExcelApp.WorkBooks.Close;
FExcelApp.Quit;
FExcelApp := Unassigned;
end;
end;
OPENDATASOURCE
OPENROWSET
OPENQUERY
其中一个