各位高手,请教一个EXCEL文件导入的问题,非常紧急,在线等,而且100分相送!(100分)

  • 主题发起人 主题发起人 cfan1981
  • 开始时间 开始时间
C

cfan1981

Unregistered / Unconfirmed
GUEST, unregistred user!
[blue]我在EXCEL文件里将数字显示方式设置为文本后,用DELPHI 6导入到STRINGGRID,结果却是科学计数法显示。我的EXCEL是2000版本,导入时用的是OLEVARIANT方法,请问各位高手,该如何编写才能让STRINGGRID里的数字不为科学计数法。
请大家各抒己见,小弟不胜感激!问题一旦解决立即结贴。[/blue]
 
你使用什么方法载入的?
如果是真的强制是文本,应该不会的。我的软件也载入EXCEL数据。
还有,如果真的不可以,你可以修改EXCEL文件的该列成邮政编码,这样可以不少科学技术法
 
多谢zywcd,但是还是不行。改成邮政编码还是会出现科学计数法
我是用OLEVARIANT方法引入数据的。具体的相关代码是
excel:=createoleobject('Excel.Application');
。。。。
excel.workbooks.open(filename); //filename即是要打开的文件名
。。。。
sg1.Cells[3,sg1.RowCount-1]:=trim(Excel.WorkSheets[1].Cells[Row,3].value);
请问应该怎样改正,多谢了
 
用控件吧,XLSREADWRITE很方便好用。
 
请问不用控件能实现吗,我们老大要尽可能不用控件
 
把exel做为一张表,然后一条一条读,几千行的也很快。我做过500条写入的,蛮快的。
 
你把EXCEL列设置成文本,然后用ADOConnection1.Execute('insert select [收/发货人] as Srcname,[联系方式] as SrctermId from [excel 8.0;HDR=YES;IMEX=1; database=文件路径 ].[Sheet1$]')
这样得出的就没有这个问题了,这是我今天才给别人写的一个转换程序
 
to xmcccc
这样写会产生一下错误:
对象名 'excel 8.0;HDR=YES;IMEX=1; database='D:/11.xls' .Sheet1$' 无效。
我是这样写的:
select * from [excel 8.0;HDR=YES;IMEX=1; database='D:/11.xls' ].[Sheet1$]
是不是写错了,请指教一下,谢谢
 
不知道我理解的对不对,

说个很恶心的法子,你看下吧
cell.... := ''''+'015466'

好象是这样写,就是在数字的前头加个引号,这样就自动转成文本格式,不会有什么别的影响,呵呵
 
我也曾经遇到过这个问题,我当时是把Excel里的数据类型改成文本就好了
[:)][:)]
 
来自:flyskylf, 时间:2006-7-7 17:30:19, ID:3499254
我也曾经遇到过这个问题,我当时是把Excel里的数据类型改成文本就好了
[:)][:)]


怎么弄的啊,仔细说下好么
 
to lz
选中Excel里面的某一列(邮编)右键--设置单元格....下面自己知道的
不知道能不能解决楼主的问题
 
Excel.WorkSheets[1].Cells[Row,3].select;
Excel.Selection.NumberFormatLocal := '@';
sg1.Cells[3,sg1.RowCount-1]:=trim(Excel.WorkSheets[1].Cells[Row,3].value);
 
多谢各位帮忙,但是还是不行的。我在EXCEL里面设置好了,但是读到DELPHI里面就不行了
 
加我QQ:66063872
 
'D:/11.xls' 不要加引号
 
to xmcccc,这样写结果还是:
对象名 'excel 8.0;HDR=YES;IMEX=1; database=D:/11.xls .Sheet1$' 无效。
 
请大家帮帮忙啊
 
给你另外一种方式载入。这段代码供你参考。可以每行,每个字段按照你的要求栽入。
注意excel文件的列可以强制使用邮编。
var no,i,j:integer;
tt:TStrings;
SheetName:string; //
begin
with datam.DataM1 do //首先查找数据库中是否已经存在。如果存在,则修改已经存在的数据。
begin
ExcelConnection.Close;
ExcelConnection.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=Excel Files;'+
'DBQ='+FileName+';DriverId=790;MaxBufferSize=2048;PageTimeout=5;"';
ExcelConnection.Open;
tt:=tstringlist.Create;
ExcelConnection.GetTableNames(tt,true);
SheetName:=tt.Strings[0];
ExcelQuery1.Close;
ExcelQuery1.SQL.Clear;
ExcelQuery1.SQL.Add('select * from ['+SheetName+'] '); //全部数据
ExcelQuery1.Open; //打开EXCEL文件.
if ExcelQuery1.IsEmpty then Exit; //excel中无数据,无法载入.
 
后退
顶部