VC直接读写EXCEL的问题

lingfeng8888 2006-08-24 06:34:15
代码:
CDatabase database;
CString sDriver = _T("MICROSOFT EXCEL DRIVER (*.XLS)");
CString sExcelFile ;

sExcelFile += _T("deng.xls");

WIN32_FIND_DATA find_data;

if (FindFirstFile(sExcelFile,&find_data)!=INVALID_HANDLE_VALUE)
DeleteFile(sExcelFile);
CString sSql;

TRY
{
// Build the creation string for access without DSN

sSql.Format(_T("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s"), sDriver,sExcelFile,sExcelFile);

// Create the database (i.e. Excel sheet)
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
{
// Create table structure
sSql = _T("CREATE TABLE 施工管理 (编号 TEXT,施工名称及内容 TEXT,日期 TEXT)");
database.ExecuteSQL(sSql);

// Insert data
for (int recv_num = 1; recv_num<10; recv_num++)
{
sSql = _T("INSERT INTO 施工管理 VALUES('1','2','3')");
database.ExecuteSQL(sSql);
}

database.ExecuteSQL(sSql);
}

// Close database
database.Close();
}
CATCH_ALL(e)
{
TRACE1("Driver not installed: %s",sDriver);
}
END_CATCH_ALL;

写数据进EXECL顺利,打开生成的EXECL,看到需要写的数据都被写进了,但如果选中任何一个写入的数据单元,EXECL的数据编辑栏中(或者双击单元格直接进入编辑状态),就会看到数据的第一个字符是一个“'”(英文状态下输入的单引号),也就是说写进EXECL中的所有数据第一个字符都是“'”,但不进入编辑状态是看不到那个字符的。

不知大家是否遇到过这样的问题?
我这样的问题该如何解决?
...全文
873 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingfeng8888 2006-08-26
  • 打赏
  • 举报
回复
楼上说的不错,如果是数字就没有问题,但字符就会出现有一个“'”这个的情况。

我要的就是如何在用VC写入EXECL时不出现那个“'”。有没有办法?
jixingzhong 2006-08-26
  • 打赏
  • 举报
回复
好像写入的不是数字,就会引发这个问题 ...
lingfeng8888 2006-08-26
  • 打赏
  • 举报
回复
再顶一下,看看有没有搞,没有也就算了,就当是散分。
Juchiyufei 2006-08-25
  • 打赏
  • 举报
回复
你若这样写进去,再用excel打开修改一下,你的程序再去读,会出现很多不明原因的问题的。
Juchiyufei 2006-08-25
  • 打赏
  • 举报
回复
你用自动化的方式来写吧。

lingfeng8888 2006-08-24
  • 打赏
  • 举报
回复
难道真的没有人可以解决这个问题吗?

等等等

顶顶顶
lingfeng8888 2006-08-24
  • 打赏
  • 举报
回复
我就是想把那个“'”去掉,那样打印的时候就不会出来了。
handsomerun 2006-08-24
  • 打赏
  • 举报
回复
字段名还是有那个“'”

对阿,字段名是字符窜嘛,当然有咯,嘿嘿

看来这是个头痛的问题阿,nnd,郁闷
lingfeng8888 2006-08-24
  • 打赏
  • 举报
回复
毛毛,试了一下,字段设为数字时,字段名还是有那个“'”,但写入的数字是没有那个“'”了,但我要的是所有都能象正常的EXECL输入的所有字符与数字一样。

有没有办法?请指教了!
lingfeng8888 2006-08-24
  • 打赏
  • 举报
回复
不用做也行,我只是想把那个“'”去掉,而且在EXECL中用替换的方法都不行。

我现在想的是在程序输出到EXECL中直接能够得到正常使用EXECL的效果。
handsomerun 2006-08-24
  • 打赏
  • 举报
回复
你试一下吧,我觉得如果写数字,是不会有'的
lingfeng8888 2006-08-24
  • 打赏
  • 举报
回复
不好意思,其实都是字符,我做一下数字测试
lingfeng8888 2006-08-24
  • 打赏
  • 举报
回复
回snowbirdfly(专心搞好嵌入式~~~)

我上面的代码中即有字符串也有数字,但都是会有那个“'”,所以我想好象也不应该是你说的那么一回事。

难道就没有解决的办法了?
snowbirdfly 2006-08-24
  • 打赏
  • 举报
回复
问题出在CSpreadSheet类,因为它将所有excel数据库里面的Field定义为字符串类型。所以,对于非字符串的数据类型,比如数字,在写入excel表单的时候会在前面加一个“'”从而表示他是一个字符串,而不是一个数字!
这个就是楼上连接的解释~~
但是不知道如何解决~~~
handsomerun 2006-08-24
  • 打赏
  • 举报
回复
嘿嘿,上网找了一下资料,好像别人也有这样的问题哦

http://www.vckbase.com/document/viewdoc/?id=693
看看这个连接别人的评论



http://www.vckbase.com/document/viewdoc/?id=421
lingfeng8888 2006-08-24
  • 打赏
  • 举报
回复
如果不是打印的问题我也不用管它了,但必须要打印输出,所以我必须要得到一种正确的解决方法以。
handsomerun 2006-08-24
  • 打赏
  • 举报
回复
不客气,我也只是猜想,我觉得是不是execl的一种格式,

呵呵

没写过excel,呵呵
lingfeng8888 2006-08-24
  • 打赏
  • 举报
回复
感谢毛毛能帮我解说问题。

但是,如果有那么一个',在打印输出的时候,对个点会出来的,很麻烦!
handsomerun 2006-08-24
  • 打赏
  • 举报
回复
我在EXECL中输入文字和数字,前面都没有那个符号“'”

对,但是你如果加了那个',出来的效果就不一样了,加个',就表示输出的是一个字符窜

所以,我想,那个',s是表示这是一个字符窜的标记

你这里输出的,就是字符窜阿

你试试用程序写一个数值型,就应该没有这个'了,我想
lingfeng8888 2006-08-24
  • 打赏
  • 举报
回复
我在EXECL中输入文字和数字,前面都没有那个符号“'”,但用程序将数据写入,无论文字或者数字都有那个符号,所以有感觉不是设置的问题
加载更多回复(1)

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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