注册 登录
编程论坛 VC++/MFC

VC 操作Excel表 怎么将一个Excel表中的sheet1复制到另一个Excel表sheet1中

Leroy8508 发布于 2011-12-15 10:23, 2927 次点击
我最近在做一个对Excel进行操作的工程,想将一个Excel表作为配置表,在另一个Excel中每次新建sheet时利用这个配置表去初始化此sheet,我想将配置表内容以及格式全部复制过去,但是具体不知道怎么弄,求教高手解答!
4 回复
#2
匏樽邀月2011-12-26 22:57
我以前做过类似的东西,先读你的配置表,把数据内容储存在一个数组里面。
然后新建一个表,讲数组内容写入进去就完了,用不了几行代码。
你把Excel编程弄懂就可以了,MSDN上有具体例子,完全可以参考
#3
Leroy85082011-12-27 14:32
呵呵,谢啦!
进行数据的拷贝很简单,我需要的主要是这张表的结构,配置出一张新的空表单,现在问题已经解决。
#4
Leroy85082011-12-27 14:45
可以这样去复制
COleVariant m_covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);//全局变量
//获取要复制的sheet的区域
m_sheets.AttachDispatch(m_book.GetWorksheets(),TRUE);
m_sheet.AttachDispatch(m_sheets.GetItem(COleVariant((short)1)));
m_range.AttachDispatch(m_sheet.GetRange(_variant_t("A1"),_variant_t("E40")));

//复制选取的区域
m_range.Copy(vtMissing);

//在现有sheet后增加新sheet
COleVariant temp;
temp.pdispVal = m_sheet.m_lpDispatch;
temp.vt = VT_DISPATCH;
m_sheet = m_sheets.Add(m_covOptional,temp,m_covOptional,m_covOptional);

//复制sheet1的格式和列宽到新的sheet中
m_sheet.AttachDispatch(m_sheets.GetItem(COleVariant((short)m_Id)));
m_range.AttachDispatch(m_sheet.GetRange(_variant_t("A1"),vtMissing));
m_range.PasteSpecial(xlPasteFormats,xlPasteSpecialOperationNone,vtMissing,vtMissing);//复制表的格式
m_range.PasteSpecial(xlPasteColumnWidths,xlPasteSpecialOperationNone,vtMissing,vtMissing);//复制列宽

这样即可利用一个sheet作为配置表去复制出一张空表!
#5
杨青斌2012-07-13 21:25
您好  我也有同样的问题啊  求教  
1