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

📄 subject_33138.htm

📁 一些关于vc的问答
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<p>
序号:33138 发表者:谢亮 发表日期:2003-03-18 09:16:44
<br>主题:如何取得EXCEL文件的行列数?请高手指教。
<br>内容:&nbsp;&nbsp;我在VC下通过EXCEL自带的EXCEL9。OLB对EXCEL进行读写操作,当我打开一个EXCEL文件时,不知道怎么获取它的行列信息,因为我要把里面的内容转存到二维数组中,需要进行内存分配,程序如下,望各位高手指点:<BR>&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("e:\\ExcelTest\\MyTemplate.xlt"))); <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;&nbsp;&nbsp;&nbsp;&nbsp; //得到所有的列 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rgMyRge.AttachDispatch(wsMysheet.GetColumns(),true); 
<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>回复者:dongfanghong 回复日期:2003-03-18 15:31:18
<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;//Create the SAFEARRAY from the VARIANT ret.<BR>&nbsp;&nbsp;&nbsp;&nbsp;COleSafeArray sa(ret);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//Determine the array's dimensions.<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;//Display the elements in the SAFEARRAY.<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>
<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-19 10:22:30
<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>

⌨️ 快捷键说明

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