📄 subject_33138.htm
字号:
<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> _Application ExcelApp; <BR> Workbooks wbsMyBooks; //练习簿<BR> _Workbook wbMyBook; <BR> Worksheets wssMysheets; //工作表<BR> _Worksheet wsMysheet; <BR> Range rgMyRge; <BR> //创建Excel 2000服务器(启动Excel) <BR> <BR> if (!ExcelApp.CreateDispatch("Excel.Application",NULL)) <BR> { <BR> AfxMessageBox("创建Excel服务失败!"); <BR> exit(1); <BR> } <BR> <BR> //利用模板文件建立新文档 <BR> wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true); <BR> <BR> wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(*path))); <BR><BR> <BR> //得到Worksheets <BR> wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true); <BR> <BR> //得到sheet1 <BR> wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true); <BR> <BR> //得到全部Cells<BR> rgMyRge.AttachDispatch(wsMysheet.GetCells(),true); <BR> <BR> <BR> //将数组保写入EXCEL文件中 <BR> for(int i = 0; i<m; i++) <BR> for(int j =0; j<n; j++)<BR> { <BR> <BR> <BR> rgMyRge.SetItem(_variant_t((long)(i+1)), _variant_t((long)(j+1)),_variant_t(sz[i][j]));<BR> <BR> <BR><BR><BR> } <BR> <BR> <BR> wbMyBook.SetSaved(true); <BR> ExcelApp.SetVisible(true); <BR><BR> <BR><BR> //释放对象 <BR> rgMyRge.ReleaseDispatch(); <BR> wsMysheet.ReleaseDispatch(); <BR> wssMysheets.ReleaseDispatch(); <BR> wbMyBook.ReleaseDispatch(); <BR> wbsMyBooks.ReleaseDispatch(); <BR> ExcelApp.ReleaseDispatch(); <BR> <BR>}<BR><BR><BR>CString CExcell::CExcellget(_variant_t *path)<BR>{<BR> _Application ExcelApp; <BR> Workbooks wbsMyBooks; //练习簿<BR> _Workbook wbMyBook; <BR> Worksheets wssMysheets; //工作表<BR> _Worksheet wsMysheet; <BR> Range rgMyRge; <BR> //创建Excel 2000服务器(启动Excel) <BR> <BR> if (!ExcelApp.CreateDispatch("Excel.Application",NULL)) <BR> { <BR> AfxMessageBox("创建Excel服务失败!"); <BR> exit(1); <BR> } <BR> //利用模板文件建立新文档 <BR> wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true); <BR> wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(*path))); <BR><BR> //得到Worksheets <BR> wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true); <BR> <BR> //得到sheet1 <BR> wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true); <BR> <BR> //得到全部Cells<BR> //rgMyRge.AttachDispatch(wsMysheet.GetCells(),true); <BR><BR> //得到所有的列 <BR> rgMyRge.AttachDispatch(wsMysheet.GetColumns(),true); <BR><BR><BR><BR> rgMyRge=wsMysheet.GetUsedRange(); <BR> VARIANT ret;<BR> ret = rgMyRge.GetValue();<BR><BR> //创建一个ARRAY<BR> COleSafeArray sa(ret);<BR><BR> //查看这个ARRAY的大小<BR> long lNumRows;<BR> long lNumCols;<BR> sa.GetUBound(1, &lNumRows);<BR> sa.GetUBound(2, &lNumCols);<BR><BR> //得到行列值<BR> long index[2];<BR> VARIANT val;<BR> int r, c;<BR> TRACE("Contents of SafeArray\n");<BR> TRACE("=====================\n\t");<BR> for(c=1;c<=lNumCols;c++)<BR> {<BR> TRACE("\t\tCol %d", c);<BR> }<BR> TRACE("\n");<BR> for(r=1;r<=lNumRows;r++)<BR> {<BR> CStringArray arValue;<BR> TRACE("Row %d", r);<BR> for(c=1;c<=lNumCols;c++)<BR> {<BR> index[0]=r;<BR> index[1]=c;<BR> sa.GetElement(index, &val);<BR> CString sValue;<BR> switch(val.vt)<BR> {<BR> case VT_R8:<BR> {<BR> sValue.Format("%1.2f",val.dblVal); <BR> TRACE("\t\t%s",sValue);<BR> break;<BR> }<BR> case VT_BSTR:<BR> {<BR> sValue.Format("%s",(CString)val.bstrVal);<BR> TRACE("\t\t%s",sValue);<BR> break;<BR> }<BR> case VT_EMPTY:<BR> {<BR> TRACE("\t\t<empty>");<BR> break;<BR> }<BR> }<BR> arValue.Add(sValue); <BR> }<BR> //out put arValue;<BR> TRACE("\n");<BR> } <BR> <BR> CString **szStr;<BR> //将EXCEL文件文件中的内容写入数组中<BR> for(int i = 0; i<r; i++)<BR> for(int j =0; j<c; j++)<BR> { <BR> <BR> <BR> _variant_t str= rgMyRge.GetItem(_variant_t((long)i),_variant_t((long)j));<BR> <BR> CString str1 = (LPCSTR)_bstr_t(str); <BR> //CString **szStr;<BR> szStr[i][j] = str1;<BR><BR> }<BR> <BR><BR> return (**szStr);<BR> wbMyBook.SetSaved(true); <BR> ExcelApp.SetVisible(true); <BR><BR> <BR><BR> //释放对象 <BR> rgMyRge.ReleaseDispatch(); <BR> wsMysheet.ReleaseDispatch(); <BR> wssMysheets.ReleaseDispatch(); <BR> wbMyBook.ReleaseDispatch(); <BR> wbsMyBooks.ReleaseDispatch(); <BR> ExcelApp.ReleaseDispatch(); <BR> <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 + -