mfc CSpreadSheet与office一起用,CSpreadSheet在一个表格中生成两张表,调用office库文件操作表

之前,想在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个表格操作,



  • 0
    点赞
  • 1
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

评论1
请先登录 后发表评论~
©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

储哈哈

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值