#include "excel9.h"
//excel9库https://download.csdn.net/download/weixin_44747201/19871789
BOOL OutputExcel(CString strPath)
{
_Application ExcelApp;
Workbooks wbsMyBooks;
_Workbook wbMyBook;
Worksheets wssMysheets;
_Worksheet wsMysheet;
_Worksheet wsCopysheet;
try
{
ExcelApp.CreateDispatch(_T("Excel.Application"));
if (ExcelApp == NULL)
{
return S_FALSE;
}
ExcelApp.SetDisplayAlerts(FALSE);
wbsMyBooks = ExcelApp.GetWorkbooks();
wbMyBook = wbsMyBooks.Open(strPath, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing);
wssMysheets = wbMyBook.GetSheets();
int iSheet = 1;
int iSheetCount = wssMysheets.GetCount();//获取总页数,防止使用时页数溢出
wsMysheet = wssMysheets.GetItem(_variant_t((long)iSheet));//指定第一页
CString strVal = “”;
CString strWhere = _T("E1");
//在第一页E1位置写入数据
Range rgval = wsMysheet.GetRange(COleVariant(strWhere),COleVariant(strWhere));
rgval.SetValue(COleVariant(strVal));
rgval.ReleaseDispatch();
int ipage=0;
LPDISPATCH lpDisp = wssMysheets.GetItem(_variant_t((long)ipage));
wsCopysheet.AttachDispatch(lpDisp);
wsCopysheet.Copy(vtMissing,_variant_t(lpDisp)); //从后面插入复制的一表
wsCopysheet.SetName(strVal);//设置表名称
wsCopysheet = wssMysheets.GetItem(_variant_t((long)ipage));
wsCopysheet.Delete();//删除
LPDISPATCH lpDisp = wssMysheets.GetItem(_variant_t((long)1));
wsMysheet.AttachDispatch(lpDisp);
wsMysheet.Activate();//设置当前活动表
wbMyBook.Save();
_variant_t vtfalse(true);
wbMyBook.Close(vtfalse,vtMissing,vtMissing);
ExcelApp.Quit();
wsMysheet.ReleaseDispatch();
wssMysheets.ReleaseDispatch();
wbMyBook.ReleaseDispatch();
wssMysheets.ReleaseDispatch();
ExcelApp.ReleaseDispatch();
}
catch (COleDispatchException * e)
{
wbMyBook.Save();
_variant_t vtfalse(true);
wbMyBook.Close(vtfalse,vtMissing,vtMissing);
ExcelApp.Quit();
wsMysheet.ReleaseDispatch();
wssMysheets.ReleaseDispatch();
wbMyBook.ReleaseDispatch();
wssMysheets.ReleaseDispatch();
ExcelApp.ReleaseDispatch();
e->Delete();
return S_FALSE;
}
return S_OK;
}
C++的Excel接口开发
最新推荐文章于 2022-09-04 15:07:06 发布