求教:如何获得Excel文件的表单名? 求教:如何获得Excel文件的表单名?我在做一个Excel文件得导入程序,不知道怎么获得文件的表单名?默认情况下,Excel新建会生成sheet1,sheet2,sheet3。假如我自定义表单名,那么再数据查询下,怎么找到这个表单?请高手赐教!在下不胜感激! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你并不需要知道具体每一张表的名字,相反你也可以获得每一张表的名字,但如果你不知道表的名字,你必须知道这张表在Excel中是第几张表,代码如下: //启动EXCEL _Application oApp; oApp.CreateDispatch("Excel.Application"); if (!oApp) { AfxMessageBox("不能启动EXCEL"); return; } //向工作簿中添加新工作表 Workbooks oBooks = oApp.GetWorkbooks(); _Workbook oBook = oBooks.Add(vOpt); Worksheets oSheets = oBook.GetWorksheets(); //获取第一张工作表 _Worksheet oSheet = oSheets.GetItem(COleVariant((short)1));其中改变GetItem中的参数可以得到第n张表,如果没有改表名的话,1表是第一张表即sheet1得到表名是_Worksheet类的一个成员函数,我记不清了,你找一下就知道了 能将表单的名字以CString的形势产生么?或者说,_Worksheet能变成CString类型么?Thanks very much! CString sheetname=oSheet.GetName(); _Workbook oBook = oBooks.Add(vOpt);提示:vOpt未定义;我查到需要一个add(const VARIANT &Template);请问这个变量,是类成员还是需要重新定义?再次感谢! 不好意思,忘了说了,在前面声明一下:COleVariant vOpt(DISP_E_PARAMNOTFOUND,VT_ERROR); 给你写了一个详细的:#include "excel9.h"void CExcelDlg::OnButton1() { CoInitialize(NULL); COleVariant vOpt(DISP_E_PARAMNOTFOUND, VT_ERROR); //启动EXCEL _Application oApp; oApp.CreateDispatch("Excel.Application",NULL); if (!oApp) { AfxMessageBox("不能启动EXCEL"); return; } //向工作簿中添加新工作表 Workbooks oBooks = oApp.GetWorkbooks(); _Workbook oBook = oBooks.Add(COleVariant("C:\\My Documents\\c++\\shi\\excel\\xxx.xls")); Worksheets oSheets = oBook.GetWorksheets(); //获取第一张工作表 _Worksheet oSheet = oSheets.GetItem(COleVariant((short)1)); CString a=oSheet.GetName(); MessageBox(a); CoUninitialize();} HOOK其他进程API 无效 基本问题 新手求救!基于对话框的程序关闭不了 编译生成的EXE图标怎么不变,怎么修改 他们有何区别 在不同的线程中 如何在子窗口的按钮上显示位图或者是Icon图形啊?高手帮忙!谢谢! 序列化问题 怎样限制文件打开的数量 关于MD5_CTX类的使用问题,我用它加密,输出的密文不会,请高手指点! 我怎样得知拖动分隔条的消息? CMultiDocTemplate第一个参数中关于文件名过滤 如何设置 单文档应用程序 的窗口大小。
//启动EXCEL
_Application oApp;
oApp.CreateDispatch("Excel.Application");
if (!oApp)
{
AfxMessageBox("不能启动EXCEL");
return;
}
//向工作簿中添加新工作表
Workbooks oBooks = oApp.GetWorkbooks();
_Workbook oBook = oBooks.Add(vOpt);
Worksheets oSheets = oBook.GetWorksheets();
//获取第一张工作表
_Worksheet oSheet = oSheets.GetItem(COleVariant((short)1));其中改变GetItem中的参数可以得到第n张表,如果没有改表名的话,1表是第一张表即sheet1
得到表名是_Worksheet类的一个成员函数,我记不清了,你找一下就知道了
Thanks very much!
COleVariant vOpt(DISP_E_PARAMNOTFOUND,VT_ERROR);
{
CoInitialize(NULL);
COleVariant vOpt(DISP_E_PARAMNOTFOUND, VT_ERROR);
//启动EXCEL
_Application oApp;
oApp.CreateDispatch("Excel.Application",NULL);
if (!oApp)
{
AfxMessageBox("不能启动EXCEL");
return;
}
//向工作簿中添加新工作表
Workbooks oBooks = oApp.GetWorkbooks();
_Workbook oBook = oBooks.Add(COleVariant("C:\\My Documents\\c++\\shi\\excel\\xxx.xls"));
Worksheets oSheets = oBook.GetWorksheets();
//获取第一张工作表
_Worksheet oSheet = oSheets.GetItem(COleVariant((short)1));
CString a=oSheet.GetName();
MessageBox(a);
CoUninitialize();
}