dbgrid导入excel的新问题(100分)

  • 主题发起人 主题发起人 songhb
  • 开始时间 开始时间
S

songhb

Unregistered / Unconfirmed
GUEST, unregistred user!
我在将dbgrid的内容导入到excel时,碰到一个问题:
我有一列是区号如 0771
导入后变成了 771,前面的0在转化为数字时被截掉了,
我怎样设置当前单元格的格式为字符,而不让它自动转化为数字呢?
 
我也遇到了这个问题
我觉得有至少两种方法可以解决
1、先做一个EXCEL模版,再导出
2、不用DBGrid,用第三方控件,如DBGridEh,它能将内容导出成多种格式,只写几行代码就行了(我现在就用DBGridEh)

DBGridEh是Ehlib中的一个,可以在www.playicq.com 中下载
 
数字型的字符串可以在前面加一个单引号
如 0771 在导出的时候用 '0771 到EXCEL则为字符串了
 
楼上的正确
 
if TDBGrid(Args.VObject).Columns.Items[iCount].Field.DataType in [ftString] then
begin
Sheet.Range[A1,A2].Select;
Sheet.Range[A1,A2].NumberFormatLocal:='@';//就是这句,数值:0.00
//整数:0
end;
 
to pandababy:
Sheet.Range[A1,A2].Select; 句提示a1未定义
 
下面是我以前写的一段代码,功能是将当前显示的DBGRIDEH中的内容导出成多种格式

procedure Tfrm_KHZL.BitBtn5Click(Sender: TObject);
var ExpClass:TDBGridEhExportClass;
Ext:String;
begin
DM1.SaveDialog1.FileName := 'file1';
// if (ActiveControl is TDBGridEh) then
if DM1.SaveDialog1.Execute then
begin
case DM1.SaveDialog1.FilterIndex of //我设了SaveDialog1的文件类型为以下三种,所以可以导出成三种格式
1: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
2: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(DM1.SaveDialog1.FileName,Length(DM1.SaveDialog1.FileName)-2,3)) <> UpperCase(Ext) then //若没有扩展名,则加上
DM1.SaveDialog1.FileName := DM1.SaveDialog1.FileName + '.' + Ext;
if not FileExists(DM1.SaveDialog1.FileName) then
SaveDBGridEhToExportFile(ExpClass,DBGridEh1,DM1.SaveDialog1.FileName,True) //导出————关键
else
application.MessageBox('文件已经存在!','导出失败',MB_ICONERROR);
end;
end;
end;

其实看你的内容,功能已经完成,用不着再换控件了
用 星仔 的方法对你可能最简单
 
接受答案了.
 
后退
顶部