📄 subject_61559.htm
字号:
<p>
序号:61559 发表者:刘言 发表日期:2003-11-20 12:40:16
<br>主题:创建并写入数据到Excel文件中的问题
<br>内容:如下代码如何动态的改变所建工作表的名称,即sSql = "CREATE TABLE Exceldemo (Name TEXT,Age NUMBER)";中的Exceldemo,我做了如下努力都不行不知什么缘故??<BR>CString str;<BR>str="xxxx";<BR>sSql = "CREATE TABLE ";<BR>sSql+=str;<BR>sSql+=" Exceldemo (Name TEXT,Age NUMBER)";<BR>database.ExecuteSQL(sSql);<BR>输出的Excel文件只是有表头,没有数据内容,程序运行到database.ExecuteSQL(sSql);就返回了,做了如下改动均不行。<BR><BR>sSql = "CREATE TABLE '"+str+"' (Name TEXT,Age NUMBER)";<BR><BR>sSql.Format("CREATE TABLE %s (Name TEXT,Age NUMBER)",str);<BR><BR>???????谢谢<BR><BR>//////////////////////////////////////////////////////////////////////////////<BR>//名称:OnWriteexcel<BR>//功能:创建并写入数据到Excel文件中<BR>//作者:徐景周(jingzhou_xu@163.net)<BR>//组织:未来工作室(Future Studio)<BR>//日期:2002.9.1<BR>/////////////////////////////////////////////////////////////////////////////<BR>void CRWExcelDlg::OnWriteexcel() <BR>{<BR> CDatabase database;<BR> CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动<BR> CString sExcelFile,sPath; <BR> CString sSql;<BR> <BR> //获取主程序所在路径,存在sPath中<BR> GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);<BR> sPath.ReleaseBuffer ();<BR> int nPos;<BR> nPos=sPath.ReverseFind ('\\');<BR> sPath=sPath.Left (nPos);<BR><BR> sExcelFile = sPath + "\\Demo.xls"; // 要建立的Excel文件<BR><BR> TRY<BR> {<BR> // 创建进行存取的字符串<BR> sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",sDriver, sExcelFile, sExcelFile);<BR><BR> // 创建数据库 (既Excel表格文件)<BR> if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )<BR> {<BR> // 创建表结构(姓名、年龄)<BR> CString str="xxxx";<BR> sSql = "CREATE TABLE Exceldemo (Name TEXT,Age NUMBER)";<BR> database.ExecuteSQL(sSql);<BR><BR> // 插入数值<BR> sSql = "INSERT INTO Exceldemo (Name,Age) VALUES ('徐景周',26)";<BR> database.ExecuteSQL(sSql);<BR><BR> sSql = "INSERT INTO Exceldemo (Name,Age) VALUES ('徐志慧',22)";<BR> database.ExecuteSQL(sSql);<BR><BR> sSql = "INSERT INTO Exceldemo (Name,Age) VALUES ('郭徽',27)";<BR> database.ExecuteSQL(sSql);<BR> } <BR><BR> // 关闭数据库<BR> database.Close();<BR><BR> AfxMessageBox("Excel文件写入成功!");<BR> }<BR> CATCH_ALL(e)<BR> {<BR> TRACE1("Excel驱动没有安装: %s",sDriver);<BR> }<BR> END_CATCH_ALL;<BR> <BR>} database.ExecuteSQL(sSql);<BR><BR> sSql = "INSERT INTO Exceldemo (Name,Age) VALUES ('徐志慧',22)";<BR> database.ExecuteSQL(sSql);<BR><BR> sSql = "INSERT INTO Exceldemo (Name,Age) VALUES ('郭徽',27)";<BR> database.ExecuteSQL(sSql);<BR> } <BR><BR> // 关闭数据库<BR> database.Close();<BR><BR> AfxMessageBox("Excel文件写入成功!");<BR> }<BR> CATCH_ALL(e)<BR> {<BR> TRACE1("Excel驱动没有安装: %s",sDriver);<BR> }<BR> END_CATCH_ALL;
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:wjb 回复日期:2003-11-20 13:33:23
<br>内容:当然<BR>因为插入数据的sql语句中的名称没有改<BR><BR>sSql = "INSERT INTO Exceldemo (Name,Age) VALUES ('徐景周',26)";<BR>应该是<BR>sSql.Format("INSERT INTO %s (Name,Age) VALUES ('徐景周',26)",str);<BR><BR><BR><BR>2003-11-20 13:34:02
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -