delphi如何实现excel导入到数据库?

delphi如何实现excel导入到数据库?,第1张

元接口部分引用comobj单元(uses)\x0d\x0aprocedureTForm1.Button1Click(Sender:TObject)\x0d\x0a\x0d\x0avarexcelx,excely:string\x0d\x0a\x0d\x0abegin\x0d\x0a\x0d\x0atry\x0d\x0a\x0d\x0aExcelApp:=CreateOleObject('Excel.Application')\x0d\x0a\x0d\x0aWorkBook:=ExcelApp.WorkBooks.Open(opendialog.FileName)//使用opendialog对话框指定\x0d\x0a//excel档路径\x0d\x0a\x0d\x0aExcelApp.Visible:=false\x0d\x0a\x0d\x0aExcelRowCount:=WorkBook.WorkSheets[1].UsedRange.Rows.Count\x0d\x0a\x0d\x0afori:=1toexcelrowcount+1do\x0d\x0a\x0d\x0abegin\x0d\x0a\x0d\x0aexcelx:=excelapp.Cells[i,1].Value\x0d\x0a\x0d\x0aexcely:=excelapp.Cells[i,2].Value\x0d\x0a\x0d\x0aif((excelapp.Cells[i,1].Value='')and(ExcelApp.Cells[i,2].Value=''))then\x0d\x0a//指定excel档的第i行,第1,2(看情况而定)行如果为空就退出,这样的设定,最好是你的档案力这两行//对应数据库中不能为空的数据\x0d\x0a\x0d\x0aexit\x0d\x0a\x0d\x0aelse\x0d\x0a\x0d\x0awithquery1do\x0d\x0a\x0d\x0abegin\x0d\x0a\x0d\x0aclose\x0d\x0asql.clear\x0d\x0asql.add(insertintotest(name,address)values(:name,:address))\x0d\x0aparambyname('name').asstring:=excelx//excel档的第一列插入到test表的name栏位\x0d\x0aparambyname('address').asstring:=excely//excel档的第二列插入到test表的address栏位\x0d\x0aexecsql\x0d\x0a\x0d\x0aend\x0d\x0a\x0d\x0aend\x0d\x0a\x0d\x0afinally\x0d\x0a\x0d\x0aWorkBook.Close\x0d\x0a\x0d\x0aExcelApp.Quit\x0d\x0a\x0d\x0aExcelApp:=Unassigned\x0d\x0a\x0d\x0aWorkBook:=Unassigned\x0d\x0a\x0d\x0aend\x0d\x0a\x0d\x0aend\x0d\x0a\x0d\x0a上面的是导到sql中的。oracle应该也差不多的吧。。

元接口部分引用 comobj 单元(uses )

procedure TForm1.Button1Click(Sender: TObject)

var excelx,excely : string

begin

try

ExcelApp := CreateOleObject('Excel.Application')

WorkBook := ExcelApp.WorkBooks.Open(opendialog.FileName)//使用opendialog对话框指定

//excel档路径

ExcelApp.Visible := false

ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count

for i := 1 to excelrowcount + 1 do

begin

excelx := excelapp.Cells[i,1].Value

excely := excelapp.Cells[i,2].Value

if ((excelapp.Cells[i,1].Value = '') and (ExcelApp.Cells[i,2].Value = '')) then

//指定excel档的第 i 行 ,第 1,2(看情况而定)行如果为空就退出,这样的设定,最好是你的档案力这两行//对应数据库中不能为空的数据

exit

else

with query1 do

begin

close

sql.clear

sql.add(insert into test(name,address) values(:name,:address))

parambyname('name').asstring := excelx//excel档的第一列插入到test表的 name栏位

parambyname('address').asstring := excely//excel档的第二列插入到test表的 address 栏位

execsql

end

end

finally

WorkBook.Close

ExcelApp.Quit

ExcelApp := Unassigned

WorkBook := Unassigned

end

end

上面的是导到sql 中的。oracle应该也差不多的吧。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10002799.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存