delphi实现excel导入到数据库

现在excel数据已经定了,oracle数据库中的表结构也已经确定,但是oracle的字段和excel的列不是一一对应的,想通过建立一个xml,记录excel列和orac... 现在excel数据已经定了,oracle数据库中的表结构也已经确定,但是oracle的字段和excel的列不是一一对应的,想通过建立一个xml,记录excel列和oracle表字段的对应关系,通过delphi把excel的数据导入到oracle中对应的字段上取,怎么实现?有源码吗?ietingyu@163.com 展开
 我来答
ymx_0319
2011-03-30 · TA获得超过142个赞
知道答主
回答量:92
采纳率:0%
帮助的人:38.6万
展开全部
元接口部分引用 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应该也差不多的吧。。
schtg
2011-04-06
知道答主
回答量:16
采纳率:0%
帮助的人:2.6万
展开全部
我只能提供一个思路,不知有用否?
先获取excel表结构,即对应数据库的字段,然后通过delphi 建立相应的数据库结构,然后从excel中读取数据,写入数据库文件就可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chunlizh
2011-03-30 · 超过27用户采纳过TA的回答
知道答主
回答量:157
采纳率:0%
帮助的人:79万
展开全部
在Excel中调整一下列顺序就可以导入了嘛
更多追问追答
追问
excel表是固定模板,不能够调整
追答
那也不需要建立XML对应关系,只要确定Excel中每列对应的字段名称,然后再Delphi中用FindField方法找出字段,并赋值就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式