关于数据导入到EXCEL的问题?分不够可以提!在线等待,解决马上结贴

tulippopo 2003-10-20 01:04:58
这下面是我函数的一部分!
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;
...全文
57 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tulippopo 2003-10-21
  • 打赏
  • 举报
回复
加引号当然可以,自动变为文本了,但是改变了身份证,我想我们大家的身份证都没有字符吧!
不过问题我以解决
Sheet.Cells.Item[Row,Col].NumberFormatLocal := '@';这就对了
谢谢东北人,真好!
tlfangqing 2003-10-20
  • 打赏
  • 举报
回复
不需设置单元格式,只需在身份证前加单引号就行了.
tulippopo 2003-10-20
  • 打赏
  • 举报
回复
可以详细点么?怎么用
WWWWA 2003-10-20
  • 打赏
  • 举报
回复
用SERVER组件?
tulippopo 2003-10-20
  • 打赏
  • 举报
回复
不行啊,星星
编译可以通过,执行的时候:'找不到成员'的提示!
li_zhifu 2003-10-20
  • 打赏
  • 举报
回复
var
ExcelApp,st:variant;
begin
ExcelApp:=CreateOleObject('Excel.Application');
ExcelApp.workbooks.add();
ExcelApp.Worksheets[1].activate;
st := ExcelApp.workbooks[1].worksheets[1];
st.Range['1:1'].NumberFormatLocal := '@'; //设置一行
st.Range['A:A'].NumberFormatLocal := '@'; //设置一列
ExcelApp.visible:=true;
li_zhifu 2003-10-20
  • 打赏
  • 举报
回复
Sheet.Cells.Item[Row,Col].NumberFormatLocal := '@';//Item应该是用不到的吧
Sheet.Cells.[Row,Col].NumberFormatLocal := '@';
tulippopo 2003-10-20
  • 打赏
  • 举报
回复
高手都去那里了!帮帮兄弟我啊

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧