作者tropical72 (藍影)
看板C_and_CPP
標題Re: [問題] 終止處理程序中的Excel.exe
時間Thu Dec 9 00:01:57 2010
※ 引述《hyc325 (SONY VAIO-FE25TP)》之銘言:
: 我所使用的新增sheet方式是以下方法:
: 宣告省略......
: sheet=sheets.GetItem(COleVariant((short)(3)));
: sheet.Activate();
: COleVariant vBefore,vAfter,vCount,vType;
: //Default
: vBefore.vt=VT_ERROR;
: vBefore.scode=DISP_E_PARAMNOTFOUND;
: //Insert next to active sheet
: vAfter.vt=VT_DISPATCH;
: vAfter.pdispVal=book.GetActiveSheet();
: //Insert 1 sheet
: vCount.vt=VT_I2;
: vCount.iVal=1;
: //Insert a Worksheet object
: vType.vt=VT_I2;
: vType.iVal=-4167; // xlWorksheet
: sheets.Add(vBefore,vAfter,vCount,vType);
我截取出我包出來的 class CExcel 一段
private:
_Application objApp;
Workbooks objBooks;
_Workbook objBook;
Worksheets objSheets;
_Worksheet objSheet;
//=====================================================================================
// 插入第 nIndex 個 Sheet
//=====================================================================================
BOOL CExcel::InsertSheet(long nIndex, CString SheetName)
{
if(nIndex <=0 || nIndex > objSheets.GetCount()) return FALSE;
objSheet = objSheets.GetItem(COleVariant(nIndex));
objSheet.Activate();
objSheets.Add(VOptional,VOptional,VOptional,VOptional);
objSheet = objSheets.GetItem(COleVariant(nIndex));
objSheet.SetName(SheetName);
return TRUE;
}
--
YouLoveMe() ? LetItBe() : LetMeFree();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.76.142
→ tropical72:話說我看你第二次發這主題了,你excel打算寫到多強大? 12/09 00:19
→ tropical72:如果要很複雜功能的話,有考慮要轉VBA嗎? 12/09 00:20
推 ericinttu:我應該要學起來, 要不然都偷懶用BCB連excel XD 12/09 01:03
→ ericinttu:習慣用C來處理事情的話, 還是比VBA順手得多. 12/09 01:04
→ tropical72:事實上BCB連excel的確比VC方便許多。 12/09 01:30