delphi 输出 Excel 纯文本格式

问题

数据库字段类型是varchar,内容有各种情况;其中数值存储都是千分符分隔方式。
例如1000存入就是’1,000’,1000mm存入就是’1,000mm’
我使用

asheet.Cells[row, col].Value := x;

结果发现,'1,000mm’导出来的内容是正常的,但是’1,000’导出来会自动变成1000,千分符不见了。
但是客户要求导出到excel的时候,输出是原值,不要经过转换。

处理过程

问deepseek 豆包 千问 等AI,得到的答案都是用下面这种方法:

asheet.Cells[row, col].NumberFormat := '@';
asheet.Cells[row, col].Value := '1,000';

我测试过了,还会自动转换。
还有一种方法是在字符串前面加单引号’,但不是我要的效果。

最终达到效果的方法

我回想起很早以前做过的一个项目遇到过这个问题,于是从老项目代码中找到了这段代码,依然能够完美的解决了这个问题
代码如下:

asheet.Cells[row, col].NumberFormatLocal := '@ ';
asheet.Cells[row, col].Value := '1,000';

使用的是NumberFormatLocal来进行格式化,格式化内容为’@ ',注意,@后面有一个空格,不能省,否则还是达不到这个效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值