当前位置:数据库 > Excel >>

delphi从EXCEL导入sql数据库,出现的问题。 拜托师傅指点怎么样才能正确,其他方法和代码也可以。

我用一个ADOConnection1控件连接数据库,一个SaveDialog1控件打开选择EXCE路径L,”测试表“的列数>4列时,导入的数据列就混乱了,不能使数据库表与EXCEL对应,但是<=4列时就没有问题,源码如下: begin if (SaveDialog1.Execute) then begin try ADOConnection1.Close; ADOConnection1.Provider :='Microsoft.Jet.OLEDB.4.0;Data Source='+SaveDialog1.FileName+';Extended' + 'Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False' ; ADOConnection1.Connected := False ; ADOConnection1.Connected := True ; sqll := 'insert into 测试表 select * from ' + 'OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source='+SaveDialog1.FileName+';Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False'')...sheet1$' ; ADOConnection1.Execute(sqll ) ; Application.MessageBox('导出数据成功 !', PChar('数据导入导出提示'), MB_OK + MB_ICONINFORMATION + MB_TOPMOST); except Application.MessageBox('导出数据失败 !', PChar('数据导入导出提示'), MB_OK + MB_ICONINFORMATION + MB_TOPMOST); end; end;
补充:感谢两位的回答,我找到原因了。只要把*改为数据库表里列的字段名就可以了。
追问:Excelid是什么?变量吗?会不会与sql列的数据类型有关系?我全部用的Char类型。
测试表的结构如下:
插入不了图片,给个图片连接把。
http://hiphotos.zzzyk.com/yl1881/abpic/item/50df9c2f8577e06dc99559c2.jpg
答案:Excelid.workbooks.open(edt1.Text);//EXCEL路径

    for rowNo:=2 to Excelid.workbooks[1].Sheets[1].UsedRange.rows.Count do
    begin
      A:=trim(Excelid.workbooks[1].worksheets[1].cells[rowNo,1]);
      B:=trim(Excelid.workbooks[1].worksheets[1].cells[rowNo,2]);
      C:=trim(Excelid.workbooks[1].worksheets[1].cells[rowNo,3]);
      D:=trim(Excelid.workbooks[1].worksheets[1].cells[rowNo,4]);
      E:=trim(Excelid.workbooks[1].worksheets[1].cells[rowNo,5]);
      F:=trim(Excelid.workbooks[1].worksheets[1].cells[rowNo,6]);
      ...
     end;
写SQL语句把A,B,C,D,E,F...插入数据库
其他:从SQLSERVER向EXCEL导出:
insert into OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;hdr=yes;database=c:\book1.xls;', 'select * from [Sheet2$]')(id,name) select id,name from 表1 

从Excel向SQLServer导入:
select * into 表1 from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes; database=c:\book1.xls;','select * from [Sheet1$]')
如果表1不存在,则创建 

上一个:按键精灵如何实现顺序读取数据库(SQL)中的字段值,将值保存到EXCEL中,谢谢
下一个:sql 中对查询字段有没有类似于excel中的CONCATENATE函数的功能

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,