关于数据导入到EXCEL的问题?分不够可以提!在线等待,解决马上结贴
这下面是我函数的一部分!
1、问题时我导入都成功,就是在身份证号码在导入的过程中,最后3位被EXCEL变成 了'000',而原来的身份证号15位可以导入正确!
2、在EXCEL中把单元格属性改为'文本',就可以输入18为数字了,问题我怎样在程序中可以把单元格属性变为文本属性,或有什么别的方法?在原来的单元格中是科学计数法的属性!
以下是我的部分程序,看看在那加!
Function DataSetToExcelSheet(DataSet:TDataSet;AdoQry:TAdoQuery;DbGrdEh:TDbGridEh;FieldTagMax:Integer;Sheet:OleVariant): Boolean;
var
Row,Col,FieldIndex :Integer;
BK:TBookMark;
begin
Result := False;
if not Dataset.Active then exit;
BK:=DataSet.GetBookMark;
DataSet.DisableControls;
Sheet.Activate;
try
// 列标题
Row:=1;
Col:=1;
for FieldIndex:=0 to DbGrdEh.Columns.count-1 do
begin
If DbGrdEh.Columns.Items[FieldIndex].Visible = True Then Begin
Sheet.Cells.Item[Row,Col].NumberFormatLocal := '@';
Sheet.Cells(Row,Col) :=DbGrdEh.Columns.Items[FieldIndex].Title.caption;
Inc(Col);
End;
end;
// 表内容
DataSet.First;
while Not DataSet.Eof do
begin
Row:=Row+1;
Col:=1;
for FieldIndex:=0 to DbGrdEh.Columns.count-1 do
begin
If DbGrdEh.Columns.Items[FieldIndex].Visible = True Then Begin
Sheet.Cells(Row,Col):=DataSet.FieldByName(DbGrdEh.Columns.Items[FieldIndex].FieldName).AsString;
Inc(Col);
End;
end;
DataSet.Next;
end;
Result := True;
finally
DataSet.GotoBookMark(BK);
DataSet.EnableControls;
end;
end;