excel导入奇怪问题 一个EXCEL用另外程序导出,修改其中数值型字段后再导入数据库,居然被修改过的数字都成了空,excel导入用的是ADO方式,请问哪位高手可以告诉我为什么这样?如何解决! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没有改变任何东西,excel修改及新增的都不能导进去(数字形数据) 刚写的DEBGRID导出EXCELL 看有帮助吗?procedure TFormGzqkHZ.DataToExcel(aPath: string);var MySQL,ConnStr: string;begin ConnStr := 'Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=' + aPath + ';Persist Security Info=False'; MySQL := 'SELECT * INTO [SHEET1] FROM TBLGZFFQKLS IN [ODBC]' + ' [ODBC;Driver=SQL Server;UID=sa;PWD=;Server='+ frmMain.IpCode +';DataBase=SalaryAuidit;]'; try ADOConnExcel.Connected := False; ADOConnExcel.ConnectionString := ConnStr; ADOConnExcel.Connected := True; ADOConnExcel.Execute(MySQL); Application.MessageBox('导出EXCEL成功','信息提示!',mb_ok+mb_iconinformation); ADOConnExcel.Connected := False; except Application.MessageBox('导出EXCEL失败','错误!',mb_ok+mb_iconStop); ADOConnExcel.Connected := False; end;end; 谢谢楼上,可我的问题是EXCEL表在导入数据库时候出问题,主要是EXCEL表中的数字不能修改或新增,否则导进去成了空值(源EXCEL表也是程序从库中导出的) 你是打开excel文件进行修改的吧!是不是excel表格里前面有个感叹号的单元格倒入的都是空的。你点感叹号会有个菜单出来,它会提示你转换成什么格式,你就转换成哪个格式,直到感叹号没有就可以到入了。 不是的!原来EXCEL文件:PID NAME MONEY101 王勤 100.00 (其他程序导出,ADO显示正常)102 王勤 100.00 (其他程序导出,ADO显示正常)103 王勤 100.00 (其他程序导出修该后MONEY为空)104 王勤 100.00 (其他程序导出修该后MONEY为空)105 王勤 100.00 新增数据MONEY为空,其他字段正常106 王勤 100.00 新增数据MONEY为空,其他字段正常107 王勤 100.00 新增数据MONEY为空,其他字段正常用ACCESS导入的时候显示类型转换失败,失败的记录都是修改过的和新增的!有高手可以回答这是为什么? TO: cblearn() 你注意看你的excel文件的 MONEY列,你修改过的和新增的格子有四个小蓝点,你点到那个有蓝点的单元格就会出现我上面说 的 感叹号的。---------------如果不是这样我就不知道了! 我也用ADO和OLE 链接程序,从没你说的那种情况,你应该从以下检查:1,链接ADO有无问题。 这是我的链接 ConAdoStr = 'Provider=Microsoft.Jet.OLEDB.4.0;'+ 'User ID=Admin;'+ 'Password="";'+ 'Data Source= %s ;'+ 'Extended Properties=excel 8.0;'+ 'Persist Security Info=false';2 看EXCEL 每个数据点的“设置单元格格式”中的“数字”页,看看分类是否相同3 用其他链接方式看看数据是否有问题。如用ODBC这几点应该会帮助你解决问题 我的连接跟楼上的一样,不修改或新增数据导入都正常,一但原来EXCEL表的数字列被修改后,数字列倒入为空,用ACCESS导也一样!哪位有兴趣留下邮箱,我把原EXCEL发过去,看是否有高手能解决! 你越说越像我说的情况,你发给我xhh_gzkz 21cn.com.cn 上面应该是 xhh_gzkz 21cn.com不好意思,没有收到!~ 谢谢三友的帮助,我没用ADO方式就可以了,虽然速度慢点,但麻烦少点了! ado连接mssql2000内存暴涨的问题,路过的帮忙看看,解决后再送100分! 繁体操作系统显示简体子 动态加控件,在线等待! 怎样解决delphi6下SOAP编程,客户端提取数据汉字显示乱码的问题? 怎样让Edit中的Text居中显示,默认都是靠左的,请问怎样居中! 是Delphi的BUG吗?为什么5可以而6,7都不行了? 向前辈提问! 动态申请控件方面的问题, 薪水调查,欢迎大家参与 我用adoquery生成的dataset无法插入记录? 请教大侠关于程序编写的处理问题。。。 ASP为什么无法正常调用ACTIVEX中的过程?
procedure TFormGzqkHZ.DataToExcel(aPath: string);
var
MySQL,ConnStr: string;
begin
ConnStr := 'Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=' + aPath + ';Persist Security Info=False';
MySQL := 'SELECT * INTO [SHEET1] FROM TBLGZFFQKLS IN [ODBC]' + ' [ODBC;Driver=SQL Server;UID=sa;PWD=;Server='+ frmMain.IpCode +';DataBase=SalaryAuidit;]';
try
ADOConnExcel.Connected := False;
ADOConnExcel.ConnectionString := ConnStr;
ADOConnExcel.Connected := True;
ADOConnExcel.Execute(MySQL);
Application.MessageBox('导出EXCEL成功','信息提示!',mb_ok+mb_iconinformation);
ADOConnExcel.Connected := False;
except
Application.MessageBox('导出EXCEL失败','错误!',mb_ok+mb_iconStop);
ADOConnExcel.Connected := False;
end;
end;
你点感叹号会有个菜单出来,它会提示你转换成什么格式,你就转换成哪个格式,直到感叹号没有就可以到入了。
原来EXCEL文件:
PID NAME MONEY
101 王勤 100.00 (其他程序导出,ADO显示正常)
102 王勤 100.00 (其他程序导出,ADO显示正常)
103 王勤 100.00 (其他程序导出修该后MONEY为空)
104 王勤 100.00 (其他程序导出修该后MONEY为空)
105 王勤 100.00 新增数据MONEY为空,其他字段正常
106 王勤 100.00 新增数据MONEY为空,其他字段正常
107 王勤 100.00 新增数据MONEY为空,其他字段正常用ACCESS导入的时候显示类型转换失败,失败的记录都是修改过的和新增的!
有高手可以回答这是为什么?
你注意看你的excel文件的 MONEY列,你修改过的和新增的格子有四个小蓝点,你点到那个有蓝点的单元格就会出现我上面说 的 感叹号的。---------------如果不是这样我就不知道了!
1,链接ADO有无问题。
这是我的链接 ConAdoStr = 'Provider=Microsoft.Jet.OLEDB.4.0;'+
'User ID=Admin;'+
'Password="";'+
'Data Source= %s ;'+
'Extended Properties=excel 8.0;'+
'Persist Security Info=false';
2 看EXCEL 每个数据点的“设置单元格格式”中的“数字”页,看看分类是否相同
3 用其他链接方式看看数据是否有问题。如用ODBC
这几点应该会帮助你解决问题
不好意思,没有收到!~