如何使用VC将excel表的一列格式化为text格式?

rainfate 2005-07-12 11:27:47
在一列中,有text,有number,还有date/time类型的数据,我使用:
CDBVariant ov;
rs.GetFieldValue(_T("VALUE"), ov,DEFAULT_FIELD_TYPE);
switch(ov.m_dwType)
{
case DBVT_STRING:
strOrig = *(ov.m_pstring);
break;

case DBVT_DOUBLE:
number = ov.m_dblVal;
strOrig.Format(_T("%d"),number);
break;
}

来读取"Value"列的内容,然后通过ov.m_dwtype来判断所读的数据的类型,但是发现些异常,比如:前几个数据是number后几个数据是text,则这段程序可以将number读出而不能将text读出,如果前几个数据是text而后面的是number,则text可以读出而number不能读出。

总之,就是只能读出前一种数据类型,而后面的其它数据类型就不行,非常郁闷!
我程序这样写,对么?

另外想请教,有没有什么办法通过程序把整列的format都变成text的?

谢谢各位!

...全文
269 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainfate 2005-07-14
  • 打赏
  • 举报
回复
在vc中看到了使用range,然后调用range的SerNumberFormat("@")这个函数,然后调用range的range.SetItem(COleVariant((long)(1)),COleVariant((long)(1)),COleVariant(LPCTSTR("1111"))),结果这个值在excel里显示的不是"1111"而是乱码。
谁能帮我解释么?

还有就是,如第一个帖子所写,我遇到的这个问题:////

通过ov.m_dwtype来判断所读的数据的类型,但是发现些异常,比如:前几个数据是number后几个数据是text,则这段程序可以将number读出而不能将text读出,如果前几个数据是text而后面的是number,则text可以读出而number不能读出。

///////////

谁能帮我解释呢?
我使用的是excel2003,会不会跟excel版本有关?
DawnPine 2005-07-13
  • 打赏
  • 举报
回复
VB里这样写:
sheet1.columns("C").NumberFormatLocal = "@"
就把sheet1的C列设为文本格式了

你用C的语法来写这句话就行了

5,172

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧