QT打开Excel设置列的类型的问题

在使用QT的QAxObject打开Excel时,遇到数值型数据丢失前导0或转换为科学计数法的问题。通过研究微软官方文档和VBA资料,发现可以利用'WorkBooks'的OpenText方法中的FieldInfo参数来设置列格式为文本。在QT中,通过QAxObject的dynamicCall方法,结合QList和QVariant,成功创建了二维数组传递给OpenText方法,解决了问题。关键步骤包括获取DISPID并调用Invoke方法,以及正确使用LongLong类型避免数值错误。

Excel列或者单元格的类型有很多,例如:数值、文本、日期等,

我们用QT的QAxObject打开电话号码,或者比较长的数值时,前面的0就没了,或者变成了科学计数法,比如0210 会变成210,

由于用户更习惯表格式增删改查,所以我曾经想通过QT的QAxObject打开一个csv文件,以文本的方式,显示成excel的形式

为了实现上述需求,我做了很多尝试,查了很多资料

微软官方中文excel解释地址:https://msdn.microsoft.com/zh-cn/library/ff837097.aspx

搜索VBA操作的excel相关资料

从微软官方中文excel解释发现有个接口或许能够实现相关功能,就是workbooks的OpenText方法

如下:

OpenText(FilenameOriginStartRowDataType

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值