VC中调用EXECL模板生成新的Excel文档
来源:互联网 发布:淘宝快递费用价格表 编辑:程序博客网 时间:2024/06/05 07:17
TestExcel::Button1()
{
// TODO: Add your control notification handler code here
// 声明所需要使用到的对象
_Application ExcelApp;
Workbooks wbsMyBooks;
_Workbook wbMyBook;
Worksheets wssMysheets;
_Worksheet wsMysheet;
Range rgMyRge;
//创建Excel 2000服务器(启动Excel)
if (!ExcelApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("创建Excel服务失败!");
exit(1);
}
//设置Excel不可见
ExcelApp.SetVisible(false);
//利用模板文件建立新文档
char path[MAX_PATH];
GetCurrentDirectory(MAX_PATH,path);//获取当前应用程序或进程的运行目录并将其存入path中
CString strPath = path;
strPath += "\\1.xlsx";//拼成一个完整的文件的绝对路径
wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);//获得wbsMyBooks
wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(strPath)));//获得wbMyBook 其中WbsMyBooks.Add是用strPath做模板得到wbsMyBook
//得到Worksheets
wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);
//得到sheet1
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true);
//添加模板个数
for(int i=0;i<4;i++){
wsMysheet.Copy(vtMissing,_variant_t(wsMysheet));
}
CString str1;
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true);
str1 = "第1页";
wsMysheet.SetName(str1);
for(i=0;i<wssMysheets.GetCount()-1;i++){
//此地方该显示时缺少两项
wsMysheet = wsMysheet.GetNext();
str1.Format("第%d页",i+2);
wsMysheet.SetName(str1);
}
wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("第1页")),true);
//得到全部Cells,此时,rgMyRge是cells的集合
rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);
//设置1行1列的单元的值
CString str=_TEXT("21:12");
rgMyRge.SetItem(_variant_t((long)7),_variant_t((long)3),_variant_t(str)); //设置单元格中的值7为行、3为列、str为要设置的值
rgMyRge.SetItem(_variant_t((long)9),_variant_t((long)3),_variant_t(str));
rgMyRge.SetItem(_variant_t((long)7),_variant_t((long)4),_variant_t(str));
rgMyRge.SetItem(_variant_t((long)8),_variant_t((long)4),_variant_t(str));
rgMyRge.SetItem(_variant_t((long)9),_variant_t((long)4),_variant_t(str));
rgMyRge.SetItem(_variant_t((long)10),_variant_t((long)4),_variant_t(str));
rgMyRge.SetItem(_variant_t((long)11),_variant_t((long)4),_variant_t(str));
rgMyRge.SetItem(_variant_t((long)12),_variant_t((long)4),_variant_t(str));
//将表格保存
strPath = path;
strPath += "\\2.xls";
wsMysheet.SaveAs(strPath,vtMissing,vtMissing,vtMissing,vtMissing,
vtMissing,vtMissing,vtMissing,vtMissing);
ExcelApp.SetVisible(true);
wbMyBook.PrintPreview(_variant_t(false)); //打印预览
//释放对象
rgMyRge.ReleaseDispatch();
wsMysheet.ReleaseDispatch();
wssMysheets.ReleaseDispatch();
wbMyBook.ReleaseDispatch();
wbsMyBooks.ReleaseDispatch();
ExcelApp.ReleaseDispatch();
wbsMyBooks.Close();
ExcelApp.Quit();
}
- VC中调用EXECL模板生成新的Excel文档
- VC中调用EXECL模板生成报表
- VC中调用EXECL模板生成报表
- VC中调用EXECL模板生成报表
- VC中调用EXECL模板生成报表
- java读取WORD/EXCEL模板转换生成新WORD/EXCEL文档
- VC中调用 Excel 的总结
- (转)VC中调用 Excel 的总结
- Excel文档的生成
- 对word文档编程,以及从模板文档批量生成新的word文档。
- VC++中调用EXCEL方法
- VC++中调用EXCEL方法
- 根据excel或者doc模板生成excel和doc文档
- ASP通过VBA方式调用EXCEL模版生成新的EXCEL (转)
- vc++6.0中文档、视图与框架的互相调用
- vc 6.0中文档、视图与框架的互相调用
- VC++/MFC中调用CHM帮助文档的方法
- vc++6.0中文档、视图与框架的互相调用
- JNDI 是什么
- std::vector<T>的reserve()和resize()
- SQL函数:字符串中提取数字,英文,中文,过滤重复字符
- 百度的笔试题
- JAVA 简单累加
- VC中调用EXECL模板生成新的Excel文档
- 线程的状态转换图
- CSS中常用中文字体转Unicode编码表
- java支付宝支付成功但是验证失败AlipayNotify.returnverify
- 百度IOS SDK若干问题解决办法
- POJ2367 Genealogical tree (拓扑排序)
- 分享三个iframe自适应高度的例子
- NoSql大比拼--方案
- WCF的配置Web.config及发布需要注意的问题