当前位置:主页>销售管理软件> 列表

数据库导到Execl中出现数字出错!!!急急 找金蝶财务软件迷你版

销售管理软件版1楼: 我把数据库的数据导到Execl中,通过DataSetToExecl控键。
导入Execl后出现这样的问题:例如我其中一项是银行帐号1234567890123456789,导到Execl后变成1234567890123450000,
凡是帐号15位以上的后面的数字变成“0”,即被“0”换掉
请高手帮帮忙。是不是Execl设置问题。

2楼: 支个笨招:
DataSet里,每个帐号前加个字母,强制告诉它这是"字符型"数据,不是数值型数据。到了Excel中后再去掉字母。 如金蝶财务软件迷你版

3楼: 改为:
EclApp.activesheet.Columns[帐号所在的列].NumberFormatLocal := ''@'';

4楼: 在每个前面加个''符号,就变成字符型了

5楼: 不是编程的问题,因为我是直接用一个数据库转EXecl的控键,我允许程序是按那个按钮就把数据库的资料导到Execl中,导出后发现有问题,即上面说的。
随便说下那些帐号在数据库本身设置是字符型

6楼: 帮帮忙啊!!!!!!!!!!!!!!

销售管理软件版7楼: 我给个你我自己写过的程序你看看
procedure TForm1.Button7Click(Sender: TObject);
var i,j:integer;
Excelid,xl: Variant;


begin
try
Excelid:=CreateOleObject( ''Excel.Application'' );
except
on Exception do raise exception.Create(''无法创建Xls文件,请确认是否安装EXCEL'')
end;
Excelid.Visible := false;
Excelid.WorkBooks.Add;
Excelid.Caption :=''1'';
Excelid.worksheets[1].range[''A1:''+chr(ord(''a'')+query_jd.FieldCount-1)+''1''].Merge(True);
//Excelid.WorkSheets[1].Cells[1,1].Value :=Adotable1.FieldValues[''dk_name'']+''(''+Adotable1.Fieldbyname(''dk_quality'').AsString+''亩)滴灌工程材料表'' ;
Excelid.worksheets[1].range[''A1:''+chr(ord(''a'')+query_jd.FieldCount-1)+''1''].HorizontalAlignment := $FFFFEFF4;
Excelid.worksheets[1].range[''A1:''+chr(ord(''a'')+query_jd.FieldCount-1)+''1''].VerticalAlignment := $FFFFEFF4;
Excelid.worksheets[1].range[''A1:''+chr(ord(''a'')+query_jd.FieldCount-1)+inttostr(query_jd.recordcount+3)].NumberFormatLocal := ''@'' ;
// Excelid.worksheets[1].range[''A1:''+chr(ord(''a'')+query_jd.FieldCount-1)+inttostr(query_jd.recordcount+3)].autofit:=true;

//**************************************************************************************************
for i:=1 to query_jd.FieldCount do
begin
Excelid.WorkSheets[1].Cells[2,i].Value := query_jd.fields[i-1].fieldname;
end;
Excelid.worksheets[1].Range[''A1:''+chr(ord(''a'')+query_jd.FieldCount-1)+inttostr(query_jd.RecordCount)].Font.Name := ''宋体'';
query_jd.first;
for j:=3 to query_jd.recordcount+3 DO
BEGIN
for i:=1 to query_jd.FieldCount do
begin
Excelid.WorkSheets[1].Cells[j,i].Value :=query_jd.fields[i-1].asstring;
end;
query_jd.next;
END;
try
SaveDialog1.Filter := ''Execl 文件(*.XLS)|*.XLS'';
SaveDialog1.DefaultExt := ''XLS'';

if SaveDialog1.Execute then
begin


Excelid.worksheets[1].SaveAs(SaveDialog1.FileName);

showMessage(''导出完毕'');
end;
finally
Excelid.quit;

end;




end;

8楼: 多人接受答案了。