delphi savedialog保存文件覆盖提示_Excel文件中的兼容模式问题,职场的你真的知道吗?...

在职场办公中,操作Excel处理数据时,不知道亲们有没有遇到下面的一些报错:

1、 查找引用无效

在用Vlookup函数实现跨工作簿引用查询时,提示引用无效,容量不够:

8d9a96888467bb9195015bcb2a9284cc.png

图一

2、功能显示灰色

有一些新功能,可是想使用时却发现有些功能是灰色,用不了

f92ea6b90c969640dbabb006fc05d429.png

图二

3、 文件莫名变大,好卡

文件内容没多少,文件却不小:

17094072c7ca5366ba6e0835b83c6d6a.png

图三

4、保存提示

d4462ed0789b504b0bbae0a2fc480873.png

图四

767cf4f5e525b72aeb64ab428978fbb8.png

图五

上面小编所列举的这些问题亲们可知道是谁惹的祸-----【兼容模式

老余简单解释下:

先了解下为什么会出现兼容模式,这个其实跟Office版本有关系。

2003版本,文件格式后缀为.xls

升级至2007版本之后,文件格式后缀为.xlsx

如果用高版本的软件打开低版本的文件,那么就会出现兼容模式,比如:同事用的还是古老的2003版本,做了一份文件发给你,而你用的是2010及以上版本,那你打开文件后就会出现兼容模式,提示你会有些版本不兼容问题。

那新旧版本文件的差异主要是一些新功能没办法使用,因此出现上面问题时不凡考虑将兼容模式去掉。

重要的是将文档升级就省心了

好了,今天的小知识点就分享到这,喜欢文章的话望评论+转发,谢谢大家!

一; delphi 快速导出excel uses ComObj,clipbrd; function ToExcel(sfilename:string; ADOQuery:TADOQuery):boolean; const xlNormal=-4143; var y : integer; tsList : TStringList; s,filename :string; aSheet :Variant; excel :OleVariant; savedialog :tsavedialog; begin Result := true; try excel:=CreateOleObject('Excel.Application'); excel.workbooks.add; except //screen.cursor:=crDefault; showmessage('无法调用Excel!'); exit; end; savedialog:=tsavedialog.Create(nil); savedialog.FileName:=sfilename; //存入文件 savedialog.Filter:='Excel文件(*.xls)|*.xls'; if savedialog.Execute then begin if FileExists(savedialog.FileName) then try if application.messagebox('该文件已经存在,要覆盖吗?','询问',mb_yesno+mb_iconquestion)=idyes then DeleteFile(PChar(savedialog.FileName)) else begin Excel.Quit; savedialog.free; //screen.cursor:=crDefault; Exit; end; except Excel.Quit; savedialog.free; screen.cursor:=crDefault; Exit; end; filename:=savedialog.FileName; end; savedialog.free; if filename='' then begin result:=true; Excel.Quit; //screen.cursor:=crDefault; exit; end; aSheet:=excel.Worksheets.Item[1]; tsList:=TStringList.Create; //tsList.Add('查询结果'); //加入标题 s:=''; //加入字段名 for y := 0 to adoquery.fieldCount - 1 do begin s:=s+adoQuery.Fields.Fields[y].FieldName+#9 ; Application.ProcessMessages; end; tsList.Add(s); try try ADOQuery.First; While Not ADOQuery.Eof do begin s:=''; for y:=0 to ADOQuery.FieldCount-1 do begin s:=s+ADOQuery.Fields[y].AsString+#9; Application.ProcessMessages; end; tsList.Add(s); ADOQuery.next; end; Clipboard.AsText:=tsList.Text; except result:=false; end; finally tsList.Free; end; aSheet.Paste; 。。。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值