小弟我做了一个读取Excel(工作表)中的程序。
但出现一个问题:
1,我是用CSring类型来获取数据的,但如果是0.000001的话,就只能获得.000001,这样的话数据就丢失了,即数据失真了。
2,如果我定义CString a[50][50]来获取数据也会出现:编译没问题,但执行不了。
我的目的是对工作表中的数据进行分列处理,例如第1列的数据和第2列的数据进行大小比较。工作表中的数据包括字符和数字,字符是用来识别每一列数据的不同的。 请问有什么办法能解决我的问题?
谢谢!!
但出现一个问题:
1,我是用CSring类型来获取数据的,但如果是0.000001的话,就只能获得.000001,这样的话数据就丢失了,即数据失真了。
2,如果我定义CString a[50][50]来获取数据也会出现:编译没问题,但执行不了。
我的目的是对工作表中的数据进行分列处理,例如第1列的数据和第2列的数据进行大小比较。工作表中的数据包括字符和数字,字符是用来识别每一列数据的不同的。 请问有什么办法能解决我的问题?
谢谢!!
解决方案 »
- MFC 对话框上的按钮组合,给硬件发送指令
- ocx参数类型与ie调用的初级问题
- 头疼,一用LoadLibrary加载这个DLL程序就退出?
- 如何获得父窗口的指针?
- 谁可以简单解释一下TCP/IP的实现?
- 两个com组件使用连接点?
- 关于PCX文件,Planes=4是如何解码和显示
- 怎样设置屏幕得分辨率?(100分)
- 谁有Rational Rose 2000 Enterprise Edition的注册码
- 在用vc开发多媒体播放软件时,为什么在开头的头文件mci.h不识别呢???????
- 请问如何将写入的文件立刻写到硬盘,防止掉电时文件丢失呢?
- 请问有没有办法把unsigned int型数组中的内容正确转变成TCHAR型?
下面代码可能对你有帮助
CString sSql;
sDsn.Format("ODBC;DRIVER={%s};HDR=NO;DSN='';DBQ=%s", sDriver, sFile);
TRY
{
// 打开数据库(既Excel文件)
db.Open(NULL, false, false, sDsn);
CRecordset rc(&db);
long re;
int i;
sSql.Format("SELECT * FROM [%s]",m_strTableName);
rc.Open(CRecordset::forwardOnly,sSql);
//rc.m_nResultCols存有数据表中列的总数
for(i=0;i<rc.m_nResultCols;i++)
{
rc.GetFieldValue(0,sSql);//得到字符串形式的数据
//处理代码
}
rc.Close();db.Close();
}CATCH(CDBException,e)
{
............
}