由于我是通用的读取,所以不能特殊判断,现在的问题是:怎么区分读的这列是数字还是日期呢?
CString str;
COleVariant vResult;
CRange range;
range.AttachDispatch(m_sheet.get_Cells());
range.AttachDispatch(range.get_Item(COleVariant(m_rowstart+row), COleVariant(m_colstart+col)).pdispVal);
vResult = range.get_Value2();
if (vResult.vt == VT_BSTR)
{
str = vResult.bstrVal;
}
else if (vResult.vt == VT_R8)
{
str.Format("%.0f", vResult.dblVal);
}
else if (vResult.vt == VT_DATE)
{
COleDateTime date(vResult.date);
//str = date.Format(VAR_VALIDDATE);
str = date.Format("%Y-%m-%d %H:%M:%S");
}
12 个解决方案
#1
没人关注,自己顶一下!
#2
#3
查查excel 的vba手册,看看有没相关的函数
#4
问题解决了吗 我这也有类似问题呢
#5
木有解决,只有把日期变成了字符串的写法
#6
我也有这问题,怎么办呢.
一种解决方法:
从数字计算出日期, 读出的数字是基于1900-1-1的天数,再转换到日期.
但这样有便捷的转换方法还好,不然就又要杀死大堆脑细胞了
一种解决方法:
从数字计算出日期, 读出的数字是基于1900-1-1的天数,再转换到日期.
但这样有便捷的转换方法还好,不然就又要杀死大堆脑细胞了
#7
像你这样我没办法知道某一行数据是数字类型还是日期类型
#8
楼主,这个问题解决了吗?最近我也遇到这个问题了,但是发现有的软件可以转,肯定是有方法的
#9
楼主,我知道怎么弄了,这样:
#10
VARIANT pszText = m_Range.get_Text();
CString strT;
char* buf = _com_util::ConvertBSTRToString(pszText.bstrVal);
strVal.Format("%s", buf);
delete buf;
CString strT;
char* buf = _com_util::ConvertBSTRToString(pszText.bstrVal);
strVal.Format("%s", buf);
delete buf;
#11
怎么显示的是乱码呢?
#12
终于让我找到方法了~
不要从程序语言去下手,找Excel本身的函数~
在Excel中借个单元格,先用TEXT函数【=TEXT(A3,"yyyy-mm-dd hh:MM:ss"),其中"A3"为你原本日期格式的单元格】转换为文本,再读出~
不要从程序语言去下手,找Excel本身的函数~
在Excel中借个单元格,先用TEXT函数【=TEXT(A3,"yyyy-mm-dd hh:MM:ss"),其中"A3"为你原本日期格式的单元格】转换为文本,再读出~
#1
没人关注,自己顶一下!
#2
#3
查查excel 的vba手册,看看有没相关的函数
#4
问题解决了吗 我这也有类似问题呢
#5
木有解决,只有把日期变成了字符串的写法
#6
我也有这问题,怎么办呢.
一种解决方法:
从数字计算出日期, 读出的数字是基于1900-1-1的天数,再转换到日期.
但这样有便捷的转换方法还好,不然就又要杀死大堆脑细胞了
一种解决方法:
从数字计算出日期, 读出的数字是基于1900-1-1的天数,再转换到日期.
但这样有便捷的转换方法还好,不然就又要杀死大堆脑细胞了
#7
像你这样我没办法知道某一行数据是数字类型还是日期类型
#8
楼主,这个问题解决了吗?最近我也遇到这个问题了,但是发现有的软件可以转,肯定是有方法的
#9
楼主,我知道怎么弄了,这样:
#10
VARIANT pszText = m_Range.get_Text();
CString strT;
char* buf = _com_util::ConvertBSTRToString(pszText.bstrVal);
strVal.Format("%s", buf);
delete buf;
CString strT;
char* buf = _com_util::ConvertBSTRToString(pszText.bstrVal);
strVal.Format("%s", buf);
delete buf;
#11
怎么显示的是乱码呢?
#12
终于让我找到方法了~
不要从程序语言去下手,找Excel本身的函数~
在Excel中借个单元格,先用TEXT函数【=TEXT(A3,"yyyy-mm-dd hh:MM:ss"),其中"A3"为你原本日期格式的单元格】转换为文本,再读出~
不要从程序语言去下手,找Excel本身的函数~
在Excel中借个单元格,先用TEXT函数【=TEXT(A3,"yyyy-mm-dd hh:MM:ss"),其中"A3"为你原本日期格式的单元格】转换为文本,再读出~