前言:有的时候用户可以提供excel格式的数据(肯定是关系错综复杂的数据,删选一些列导入),具体的要求我们文件导入系统,可是我们系统完全没有这个功能,我们总肯定不能一条一条数据录入吧,那样的话得花废多少人力物力呀。本文将能介绍一种方法,真接写公式将数据转换为条件数据库的sql脚本,然后再再将这些sql在系统中执行,只必须花费几分钟的时间。
解决的办法方法步骤不胜感激:
1、工具需求
(1)excel
2、必须我们再打开用户提供的excel数据,鼠标定位到第一行数据的还有一个单元格(这里是f2单元格)
(1)输入,在双引号里面写入到insert语句脚本,这里举例oracle语句的insertinto语句,格式万分感谢
3、然后把鼠标定位到两个中间,排列选择类型到栏位不对应的单元格,如第一列的值定位到a2,正当此时公式里面的值就变为了a2,意思那是user_code的值那是a2单元格的值,第二列第三列的依次类推.
(1)之后把鼠标光标弄到公式最后面,再按enter键,那样的话第一行的公式就写再说,如图1
4、鼠标再导航仪到第一行的公式,鼠标左键摁往后面拖拽到数据行的最后一行,后再松开按键,这样全部的公式就生成完了,如图
var
excelx,excely,excelz:string;
excelapp,workbook:olevariant;
excelrowcount,i:integer;
begin
ifopendialog.executethen
begin
try
excelapp:createoleobject();
//workbook:excelapp;
workbook:();//在用opendialog对话框指定你
//excel档路径
;
excelrowcount:
withquery1do
begin
locked;
;
(deletefromcode);//再一次文件导入的时候把以前的导入记录彻底删除
execsql;
end;
fori:2toexcelrowcount1do
begin
excelx:excelapp.cells[i,2].value;//导入第二列的数据
excely:excelapp.cells[i,17].value;//导出来第17列的数据
withquery1do
begin
close;
;
(insertintocode(kahao,bumen)values(:a,:b));
(a).value:excelx;//excel档的第一列插到到aa表的a栏位;
(b).value:excely;//excel档的第二列再插入到不是a表的b栏位;
execsql;//你要导入几列,自己定义
end;
end;
finally
;
;
excelapp:unassigned;
workbook:unassigned;
showmessage(导出顺利!);
end;
end;
我用过了的。这个可以用!
一些不必要的东西自己消掉!