之前,想在mfc中创建一个excel表格,一个里面有两张表,结果用office库文件函数操作没有成功,然后发现用CSpreadSheet建两张表,发现竟然在同一个excel文件中,可能很多人都知道,但是我是菜鸟,所以记录下。
CSpreadSheet SS(csFilename,"详细信息");
CStringArray sampleArray;
CString tempString;
sampleArray.RemoveAll();
SS.BeginTransaction();
sampleArray.Add("序号");
sampleArray.Add("产品制令");
sampleArray.Add("批次");
sampleArray.Add("条形码");
sampleArray.Add("产品序号");
sampleArray.Add("工序名称");
sampleArray.Add("入时间");
sampleArray.Add("出时间");
sampleArray.Add("历时(s)");
SS.AddHeaders(sampleArray);
SS.Commit();
Colums = sampleArray.GetSize();
CSpreadSheet SS1(csFilename,"批次信息");
sampleArray.RemoveAll();
SS1.BeginTransaction();
sampleArray.Add("制令");
sampleArray.Add("批次");
sampleArray.Add("预设产品个数");
sampleArray.Add("实际入个数");
sampleArray.Add("实际出个数");
sampleArray.Add("批次历时(s)");
sampleArray.Add("历史入个数");
sampleArray.Add("历史出个数");
SS1.AddHeaders(sampleArray);
SS1.Commit();
然后后面在程序中可以各自修改各表的程序
CApplication app; CWorkbooks books; CWorkbook book; CWorksheets sheets; CWorksheet sheet; CRange range; CRange cols; CFont0 font; CString csFilename=""; Path = Cs_Zhiling + GongXu; GetCurrentPath(g_szWorkDir); csFilename.Format("%s\\%s.xls", g_szWorkDir,Path); LPDISPATCH lpDisp; HRESULT hr; hr = CoInitialize(NULL); //ASSERT(!FAILED(hr)); if(FAILED(hr)) { AfxMessageBox("Failed to call Coinitialize()"); MyListShowSystem("Failed to call Coinitialize()"); } COleVariant covOptional((long) DISP_E_PARAMNOTFOUND,VT_ERROR); if (!app.CreateDispatch(_T("Excel.Application"))) { this->MessageBox(_T("无法创建Excel应用")); MyListShowSystem("无法创建Excel应用"); return; } try { books = app.get_Workbooks(); } catch (CException* e) { TCHAR szError[1024]; e->GetErrorMessage(szError,1024); // e.GetErrorMessage(szError,1024); ::AfxMessageBox(szError); } // app.put_Visible(TRUE); // app.put_UserControl(TRUE); books = app.get_Workbooks(); lpDisp = books.Open(csFilename,covOptional ,covOptional,covOptional,covOptional ,covOptional,covOptional,covOptional ,covOptional,covOptional,covOptional ,covOptional,covOptional,covOptional ,covOptional); book=books.Add(covOptional); book.AttachDispatch(lpDisp); sheets = book.get_Sheets(); sheet = sheets.get_Item(COleVariant((short)1)); sheet = sheets.get_Item(COleVariant((short)2));
sheets().get_Item(COleVariant(short)1));表示对第一个表格操作,sheets().get_Item(COleVariant(short)2));表示对第2个表格操作,