表中的身份证类型是字符串类型在表中和dbgrideh中显示都正常,导出到excel中,就不对了实际表中和dbgrideh中显示的是:432502198106130015导出后变成432502198106130000==========
我用的是下面的这个函数
procedure TForm1.dbgridehtoexp(lsdbgrideh:tdbgrideh); //导出excel表格
var
ExpClass:TDBGridEhExportClass;
Ext:String;
lssavedialog:tsavedialog;
begin
try
lssavedialog:=tsavedialog.Create(nil);
lssavedialog.Filter:='*.xls|*.xls|*.csv|*.csv|*.htm|*.htm|*.rtf|*.rtf|*.txt|*.txt';
lssavedialog.FileName := Exceldc;//'Excel数据清单';
if lssavedialog.Execute then
begin
case lssavedialog.FilterIndex of
1: begin ExpClass := TDBGridEhExportAsText; Ext := 'xls'; end;
2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
5: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'txt'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(lssavedialog.FileName,Length(lssavedialog.FileName)-2,3)) <> UpperCase(Ext) then
lssavedialog.FileName := lssavedialog.FileName + '.' + Ext;
if FileExists(lssavedialog.FileName) then
begin
if application.MessageBox('文件名已存在,是否覆盖', '提示', MB_ICONASTERISK or MB_OKCANCEL)<>idok then
begin
exit;
end;
end;
Screen.Cursor := crHourGlass;
SaveDBGridEhToExportFile(ExpClass,lsDBGridEh,lssavedialog.FileName,true);
Screen.Cursor := crDefault;
end;
end;
showmessage('导出数据完成!');
finally
lssavedialog.Free; end;
end;
我用的是下面的这个函数
procedure TForm1.dbgridehtoexp(lsdbgrideh:tdbgrideh); //导出excel表格
var
ExpClass:TDBGridEhExportClass;
Ext:String;
lssavedialog:tsavedialog;
begin
try
lssavedialog:=tsavedialog.Create(nil);
lssavedialog.Filter:='*.xls|*.xls|*.csv|*.csv|*.htm|*.htm|*.rtf|*.rtf|*.txt|*.txt';
lssavedialog.FileName := Exceldc;//'Excel数据清单';
if lssavedialog.Execute then
begin
case lssavedialog.FilterIndex of
1: begin ExpClass := TDBGridEhExportAsText; Ext := 'xls'; end;
2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
5: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'txt'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(lssavedialog.FileName,Length(lssavedialog.FileName)-2,3)) <> UpperCase(Ext) then
lssavedialog.FileName := lssavedialog.FileName + '.' + Ext;
if FileExists(lssavedialog.FileName) then
begin
if application.MessageBox('文件名已存在,是否覆盖', '提示', MB_ICONASTERISK or MB_OKCANCEL)<>idok then
begin
exit;
end;
end;
Screen.Cursor := crHourGlass;
SaveDBGridEhToExportFile(ExpClass,lsDBGridEh,lssavedialog.FileName,true);
Screen.Cursor := crDefault;
end;
end;
showmessage('导出数据完成!');
finally
lssavedialog.Free; end;
end;
解决方案 »
- 请教一下SqlServer2005的连接方式有几种,各有什么优点,谢谢了
- 键盘码
- 关于BeginTrans锁表的问题!急!顶者有分!豁出去了,如果能够解决的话,在出2000分!
- 很高兴大家踊跃解决我这个菜鸟的问题!为何我们不在QQ上互加好友方便联系呢?
- 判断某一项数据在stringgrid控件里符合条件的某几行中已经被添加过
- 关于DCOM的配置,我已经照书上说的做,可仍不行(希望这次DELPHI版的兄弟能帮忙)
- 斑竹和大家:先声明不是恶意送分,是有赏回报
- 怎样才能快速将数字1到1千万录入到数据表并显示出来
- 就差属性页了,怎么办?
- 简单问题,白送分了.请ActiveX控件是什么呢?
- (100分)求解 C# 数据类型 与Dephi对应问题
- 在 ShellTreeView 中新建文件夹,新文件夹如何有焦点?
var ExpClass:TDBGridEhExportClass; //务必在USES处加入DBGRIDEHIMPEXP
Ext:String;
SaveDg: TSaveDialog;
begin
saveDg:=TsaveDialog.Create(nil);
saveDg.Filter:='Excel 文件(*.XLS)|*.XLS|文本文件(*.TXT)|*.TXT';
Savedg.FileName := 'standData'; //if (ActiveControl is TDBGridEh) then
if Savedg.Execute then //支持二种格式导出
begin
case Savedg.FilterIndex of
1: begin ExpClass := TDBGridEhExportAsxls; Ext := 'xls'; end;
2: begin ExpClass := TDBGridEhExportAstext; Ext := 'txt'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(SaveDg.FileName,Length(Savedg.FileName)-2,3)) <> UpperCase(Ext) then
SaveDg.FileName := SaveDg.FileName + '.' + Ext;
SaveDBGridEhToExportFile(ExpClass,DBGridEh,SaveDg.FileName,true);
//其中false为局部数据
end;
end;
end;
procedure TmainForm.Bt7Click(Sender: TObject);
begin
Educe(DBGridstand);
end;
可以用一下这个方法