当前位置:主页>delphi教程/企业管理软件> 文章内容

delphi导入到EXCEL文件的数据怎么只能显示11位,多了就被截去?

发布时间:2010-01-21 | QQ免费站
1楼: 在程序中通过创建OLE,把数据库中的数据导入到EXCEL中,数据过长怎么显示不全? 如: 原数据 导入后数据 35343454.23 35343454.23 正确 635343454.23 635343454.2 被截 8635343454.23 8635343454 被截 着急啊!!!!!
字串4

2楼: ExcelWorksheet1.Cells.CopyFromRecordset(ADOQuery1.Recordset,ADOQuery1.RecordCount,ADOQuery1.Fields.Count); 它可以把数据库记录传入Excle,你可以参考一下,看有没有帮助 字串4

3楼: 你不如把要导入的那个方格设为文本模式试试看看? ExcelWorksheet.Cells.Item[Row,Col].NumberFormatLocal := ‘@‘;
字串3

4楼: 我发现如果要显示的数据再长了,EXCEL将会以科学记数法的方式来显示,怎样才能控制,让它以普通形式显示呢?
字串3

5楼: 导出时设置excel为文本的方式即可.

字串9

6楼: 被截去数据的最大可能是格式长度问题, 格式最好用nvarchar。 字串8

7楼: to zahahui: 和数据库的数据类型无关啊,我做了测试,即使我在桌面上用ListView控件显示的内容,导入到Excel文件中,也是如此啊! 字串3

8楼: 在你要导出的字段前面加一个 ‘ 例如:‘‘‘+QUery1.fieldbyname(‘数字‘).asstring;
字串2

9楼: 我估计那就程序的问题了。 我发一段程序给你吧, 是把数据导入excel,word,文本都可以的的 function Tform4.xlsORtxt(dataset:tdataset;filename:string):boolean; var f:textfile; tempstr:string; i,j:integer; begin try dataset.DisableControls; assignfile(f,filename); rewrite(f); dataset.First; tempstr:=‘‘; for i:=0 to dataset.FieldCount-1 do tempstr:=tempstr+dataset.Fields[i].FieldName+#9; writeln(f,tempstr); for i:=0 to dataset.RecordCount-1 do begin tempstr:=‘‘; for j:=0 to dataset.Fields.Count-1 do tempstr:=tempstr+dataset.fields[j].AsString+#9; writeln(f,tempstr); dataset.Next; end; result:=true; closefile(f); except closefile(f); result:=false; end; end; 运用会吧。。 也贴一下吧。 with savedialog1 do if execute then begin if xlsORtxt(adoquery1,filename) then showmessage(‘ÒѾ­±£´æµ½‘+filename+‘‘) else showmessage(‘error‘); end; 字串1