⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_33138.htm

📁 一些关于vc的问答
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<blockquote><p>
回复者:dongfanghong 回复日期:2003-03-19 10:48:15
<br>内容:交个朋友,好啊,可以一起踢球,打打CS。<BR>QQ没有。MSN就是我的邮件地址,不过最近上不去。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:谢亮 回复日期:2003-03-20 09:40:21
<br>内容:我现在发现我们的爱好惊人的相似,踢球,CS简直就是我的第二生命,能认识你真高兴。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:谢亮 回复日期:2003-03-20 09:47:25
<br>内容:能不能再问你一个问题,现在我的程序做好了,但要做两个接口,一个读入二维数组转化为EXCEL表格,一个读入表格转化为二维数组,可供外部调用:同样的VC下通过EXCEL自带的EXCEL9。OLB对EXCEL进行读写操作,但调用这两个函数总是出错,能不能帮我看一下?谢谢了。<BR>代码如下:<BR>void CExcell::CExcellsave(_variant_t ***sz,int m,int n,_variant_t *path)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;_Application ExcelApp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;Workbooks wbsMyBooks;&nbsp;&nbsp; //练习簿<BR>&nbsp;&nbsp;&nbsp;&nbsp;_Workbook wbMyBook; <BR>&nbsp;&nbsp;&nbsp;&nbsp;Worksheets wssMysheets; //工作表<BR>&nbsp;&nbsp;&nbsp;&nbsp;_Worksheet wsMysheet; <BR>&nbsp;&nbsp;&nbsp;&nbsp;Range rgMyRge; <BR>&nbsp;&nbsp;&nbsp;&nbsp;//创建Excel 2000服务器(启动Excel) <BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (!ExcelApp.CreateDispatch("Excel.Application",NULL)) <BR>&nbsp;&nbsp;&nbsp;&nbsp;{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AfxMessageBox("创建Excel服务失败!"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(1); <BR>&nbsp;&nbsp;&nbsp;&nbsp;} <BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;//利用模板文件建立新文档 <BR>&nbsp;&nbsp;&nbsp;&nbsp;wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true); <BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(*path))); <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;//得到Worksheets <BR>&nbsp;&nbsp;&nbsp;&nbsp;wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true); <BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;//得到sheet1 <BR>&nbsp;&nbsp;&nbsp;&nbsp;wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true); <BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;//得到全部Cells<BR>&nbsp;&nbsp;&nbsp;&nbsp;rgMyRge.AttachDispatch(wsMysheet.GetCells(),true); <BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;//将数组保写入EXCEL文件中&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i = 0; i&lt;m; i++)&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int j =0; j&lt;n; j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rgMyRge.SetItem(_variant_t((long)(i+1)), _variant_t((long)(j+1)),_variant_t(sz[i][j]));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;wbMyBook.SetSaved(true); <BR>&nbsp;&nbsp;&nbsp;&nbsp;ExcelApp.SetVisible(true); <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//释放对象 <BR>&nbsp;&nbsp;&nbsp;&nbsp;rgMyRge.ReleaseDispatch(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;wsMysheet.ReleaseDispatch(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;wssMysheets.ReleaseDispatch(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;wbMyBook.ReleaseDispatch(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;wbsMyBooks.ReleaseDispatch(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;ExcelApp.ReleaseDispatch(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>}<BR><BR><BR>CString CExcell::CExcellget(_variant_t *path)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;_Application ExcelApp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;Workbooks wbsMyBooks;&nbsp;&nbsp; //练习簿<BR>&nbsp;&nbsp;&nbsp;&nbsp;_Workbook wbMyBook; <BR>&nbsp;&nbsp;&nbsp;&nbsp;Worksheets wssMysheets; //工作表<BR>&nbsp;&nbsp;&nbsp;&nbsp;_Worksheet wsMysheet; <BR>&nbsp;&nbsp;&nbsp;&nbsp;Range rgMyRge; <BR>&nbsp;&nbsp;&nbsp;&nbsp;//创建Excel 2000服务器(启动Excel) <BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (!ExcelApp.CreateDispatch("Excel.Application",NULL)) <BR>&nbsp;&nbsp;&nbsp;&nbsp;{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AfxMessageBox("创建Excel服务失败!"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(1); <BR>&nbsp;&nbsp;&nbsp;&nbsp;} <BR>&nbsp;&nbsp;&nbsp;&nbsp;//利用模板文件建立新文档 <BR>&nbsp;&nbsp;&nbsp;&nbsp;wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true); <BR>&nbsp;&nbsp;&nbsp;&nbsp;wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(*path))); <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//得到Worksheets <BR>&nbsp;&nbsp;&nbsp;&nbsp;wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true); <BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;//得到sheet1 <BR>&nbsp;&nbsp;&nbsp;&nbsp;wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true); <BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;//得到全部Cells<BR>&nbsp;&nbsp;&nbsp;&nbsp;//rgMyRge.AttachDispatch(wsMysheet.GetCells(),true); <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//得到所有的列 <BR>&nbsp;&nbsp;&nbsp;&nbsp;rgMyRge.AttachDispatch(wsMysheet.GetColumns(),true); <BR><BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;rgMyRge=wsMysheet.GetUsedRange(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;VARIANT ret;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ret = rgMyRge.GetValue();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//创建一个ARRAY<BR>&nbsp;&nbsp;&nbsp;&nbsp;COleSafeArray sa(ret);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//查看这个ARRAY的大小<BR>&nbsp;&nbsp;&nbsp;&nbsp;long lNumRows;<BR>&nbsp;&nbsp;&nbsp;&nbsp;long lNumCols;<BR>&nbsp;&nbsp;&nbsp;&nbsp;sa.GetUBound(1, &amp;lNumRows);<BR>&nbsp;&nbsp;&nbsp;&nbsp;sa.GetUBound(2, &amp;lNumCols);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//得到行列值<BR>&nbsp;&nbsp;&nbsp;&nbsp;long index[2];<BR>&nbsp;&nbsp;&nbsp;&nbsp;VARIANT val;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int r, c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;TRACE("Contents of SafeArray\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;TRACE("=====================\n\t");<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(c=1;c&lt;=lNumCols;c++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE("\t\tCol %d", c);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;TRACE("\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(r=1;r&lt;=lNumRows;r++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CStringArray arValue;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE("Row %d", r);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(c=1;c&lt;=lNumCols;c++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index[0]=r;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index[1]=c;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sa.GetElement(index, &amp;val);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CString sValue;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(val.vt)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case VT_R8:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sValue.Format("%1.2f",val.dblVal); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE("\t\t%s",sValue);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case VT_BSTR:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sValue.Format("%s",(CString)val.bstrVal);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE("\t\t%s",sValue);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case VT_EMPTY:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE("\t\t&lt;empty&gt;");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arValue.Add(sValue); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//out put arValue;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE("\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;} <BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString **szStr;<BR>&nbsp;&nbsp;&nbsp;&nbsp;//将EXCEL文件文件中的内容写入数组中<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i = 0; i&lt;r; i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int j =0; j&lt;c; j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _variant_t str= rgMyRge.GetItem(_variant_t((long)i),_variant_t((long)j));<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CString&nbsp;&nbsp;str1 = (LPCSTR)_bstr_t(str);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //CString **szStr;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; szStr[i][j] = str1;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;return (**szStr);<BR>&nbsp;&nbsp;&nbsp;&nbsp;wbMyBook.SetSaved(true); <BR>&nbsp;&nbsp;&nbsp;&nbsp;ExcelApp.SetVisible(true); <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//释放对象 <BR>&nbsp;&nbsp;&nbsp;&nbsp;rgMyRge.ReleaseDispatch(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;wsMysheet.ReleaseDispatch(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;wssMysheets.ReleaseDispatch(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;wbMyBook.ReleaseDispatch(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;wbsMyBooks.ReleaseDispatch(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;ExcelApp.ReleaseDispatch(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>}<BR><BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -