新人求助——EXCEL写入问题

泥鳅不是鱼 2011-08-25 02:52:07
我以前一直用CStringArray类对EXCEL操作
但现在因为表格格式不定,所以没法做,现在我调用EXCEL的类做,老是报错,代码如下:

_Application objApp;// _application代表了EXCEL服务器
Workbooks objBooks; //workbooks表示整个Excel服务器
Worksheets objSheets; // worksheets表示所有的表单,每个表都可能有很多表单
_Workbook objBook;//_workbook就是一个表,相当于MDI中的一个视窗
_Worksheet objSheet; //_worksheet就表示一个表单,
Range objRange,usedRange; //Range 表示元素的集合
LPDISPATCH lpDisp; //LPDISPATCH就是一个指向excel对象的指针

COleVariant VOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if(!objApp.CreateDispatch("Excel.Application"))
{
AfxMessageBox("无法启动Excel程序,请正确安装!");
return;
}
objApp.m_bAutoRelease = TRUE; //??什么意思?
// objApp.SetVisible(TRUE); //打开Excel程序,没有显示任何数据。
objApp.SetUserControl(TRUE);//允许其它用户控制Excel,否则Excel将一闪即逝
objBooks = objApp.GetWorkbooks();//将一个IDispatch连接附着于COleDispatchDriver对象

char CurrentProgramPath[MAX_PATH];
GetCurrentDirectory(MAX_PATH,CurrentProgramPath);
CString ExcelFilePathName = CurrentProgramPath;//ExcelFilePathName表示excel文件的路径和文件名
ExcelFilePathName += "\\1111.xls";
objBooks.Open(ExcelFilePathName,VOptional, _variant_t(true), VOptional, VOptional, VOptional, VOptional, VOptional,
VOptional, VOptional, VOptional, VOptional, VOptional,VOptional,VOptional);
objBook.AttachDispatch(lpDisp);
objSheets = objBook.GetWorksheets();
//设定当前的工作表sheet
objSheets.AttachDispatch(objBook.GetWorksheets());
lpDisp=objBook.GetActiveSheet();
objSheet.AttachDispatch(lpDisp);
//获得已经使用的行数
usedRange.AttachDispatch(objSheet.GetUsedRange());
objRange.AttachDispatch(usedRange.GetRows());
long iRowNum=objRange.GetCount();//已经使用的行数
objRange.AttachDispatch(objSheet.GetCells());
objRange.SetItem(COleVariant(long(iRowNum+1)),COleVariant(long(1)),COleVariant("aa"));
objRange.SetItem(COleVariant(long(iRowNum+1)),COleVariant(long(2)),COleVariant("bb"));
objBook.Save();
objBook.Close(VOptional,COleVariant(ExcelFilePathName),VOptional);
objBooks.Close();
objApp.Quit();
走到objSheets = objBook.GetWorksheets();
的时候出错
...全文
93 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2011-08-25
  • 打赏
  • 举报
回复
lpDisp都没有初始化就赋值啊

lpDisp = ojbBooks.GetItem(_variant_t(1L));
objBook.AttachDispatch(lpDisp);
见习学术士 2011-08-25
  • 打赏
  • 举报
回复
图片别和谐了
泥鳅不是鱼 2011-08-25
  • 打赏
  • 举报
回复
跪求各位大虾帮我解决下!小弟感谢万分!

4,011

社区成员

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

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