求教:如何获得Excel文件的表单名?

alfred13 2003-08-20 04:50:03
求教:如何获得Excel文件的表单名?

我在做一个Excel文件得导入程序,不知道怎么获得文件的表单名?

默认情况下,Excel新建会生成sheet1,sheet2,sheet3。假如我自定义表单名,那么再数据查询下,怎么找到这个表单?


请高手赐教!

在下不胜感激!
...全文
156 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
alfred13 2003-08-22
  • 打赏
  • 举报
回复
非常感谢!

加分!
gzshd 2003-08-21
  • 打赏
  • 举报
回复
不好意思,忘了说了,在前面声明一下:
COleVariant vOpt(DISP_E_PARAMNOTFOUND,VT_ERROR);
alfred13 2003-08-21
  • 打赏
  • 举报
回复
_Workbook oBook = oBooks.Add(vOpt);

提示:vOpt未定义;

我查到需要一个add(const VARIANT &Template);

请问这个变量,是类成员还是需要重新定义?

再次感谢!
gzshd 2003-08-21
  • 打赏
  • 举报
回复
给你写了一个详细的:

#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();
}
gzshd 2003-08-20
  • 打赏
  • 举报
回复
CString sheetname=oSheet.GetName();
alfred13 2003-08-20
  • 打赏
  • 举报
回复
能将表单的名字以CString的形势产生么?

或者说,_Worksheet能变成CString类型么?


Thanks very much!
gzshd 2003-08-20
  • 打赏
  • 举报
回复
你并不需要知道具体每一张表的名字,相反你也可以获得每一张表的名字,但如果你不知道表的名字,你必须知道这张表在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类的一个成员函数,我记不清了,你找一下就知道了

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧