VC++读取Excel表格中的日期后显示的是数字

读取Excel表格中的值显示在ListCtrl上,其他字段都是正常的,但是日期一列总是出错。比如日期为2009-3-10,但显示出来却是39882。请问是怎么回事?CLi... 读取Excel表格中的值显示在ListCtrl上,其他字段都是正常的,但是日期一列总是出错。比如日期为2009-3-10,但显示出来却是39882。请问是怎么回事?

CListCtrl m_list;
CString strText;
_variant_t disp,val;
Range cell;

m_list.InsertItem(i,"");
for(int i=0;i<300;i++)
{
for(int n=0;n<30;n++)
{
disp = rgMyRge.GetItem(_variant_t((long)(i+1)),_variant_t((long)(n+1)));
cell = disp.pdispVal;
val = cell.GetValue2();
USES_CONVERSION;
if(val.vt == VT_BSTR)
{
m_list.SetItemText(i,n,OLE2T(val.bstrVal));
}
else if(val.vt == VT_R8)
{
strText.Format("%.0f",val.dblVal);
m_list.SetItemText(i,n,strText);
}
}
}
自己创建类解决了。
展开
 我来答
绿衣人敲门
推荐于2016-04-17 · 知道合伙人软件行家
绿衣人敲门
知道合伙人软件行家
采纳数:18765 获赞数:63776
毕业于西北大学计算机网络技术专业,现在在西安电力学院进行网络推广维护工作!

向TA提问 私信TA
展开全部

步骤如下:

1.打开excel文件后,选中日期单元格,鼠标右键,选择“设置单元格格式”;

2.在弹出的对话框里,点击数字选项,选择自定义,将类型设置为“yyyymmdd”格式;

3.点击确定后,日期及转换成数字。

454036458
2012-06-20 · TA获得超过424个赞
知道小有建树答主
回答量:436
采纳率:0%
帮助的人:91.5万
展开全部
日期格式的如:2009-12-3,如果把单元格格式转换为数值后,就成了40150了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mu45
推荐于2016-12-04 · TA获得超过246个赞
知道小有建树答主
回答量:97
采纳率:0%
帮助的人:69.3万
展开全部
EXCEL里的日期格式是从计算天数转换过来的,你返回的39882这个数字,就是从1900-1-1到2009-3-10的总天数。
如果你需要直接返回日期,可以在EXCEL中将日期数据转换为文本格式,转换方法为:将日期数据复制粘贴到WORD中,返回EXCEL,将日期内容删除,修改单元格格式为文本,然后返回WORD,重新复制数据,然后粘贴到EXCEL里。
当然如果你精通C++的话,你也可以将返回值转换为日期格式。这个我就不懂了。
只能帮你这些了。希望能帮你解决问题。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式