Excel编程——复制WorkSheet
来源:互联网 发布:什么软件看书全 编辑:程序博客网 时间:2024/06/05 23:34
Excel在复制WorkSheet时有多种选择,Excel中“move or copy”的功能界面如下图所示:
可以在同一个Workbook中移动,也可以复制到新的Workbook中。而我需要的功能是将Worksheet保存到新的Workbook中,然后将Workbook存成新的文件。
实现代码如下:
int nRetVal = 0;
// 打开文件,获取激活的Sheet
LPDISPATCH lpDisp = NULL;
COleVariant covTrue((short)TRUE);
COleVariant covFalse((short)FALSE);
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
Range oCurCell;
// 打开文件
lpDisp = m_oWorkBooks.Open( strFilePath, // 打开的Excel文件路径
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing) );
// 获得活动的WorkBook( 工作簿 )
m_oWorkBook.AttachDispatch( lpDisp, TRUE );
// 获得活动的WorkSheet( 工作表 )
m_oWorkSheet.AttachDispatch( m_oWorkBook.GetActiveSheet(), TRUE );
// 将sheet保存到临时的Excel文件中,然后读取整个文件数据
CVNEOcommon oCommon;
CString strTempPath;
CString strTempFilePath;
strTempPath = oCommon.getTemporaryPath();
strTempFilePath = strTempPath + oReportData.m_strTemplateName + _T( ".xls" );
_Workbook oWorkBook;
Workbooks oWorkBooks;
_Worksheet oWorkSheet;
Worksheets oWorkSheets;
m_oWorkSheet.Copy( _variant_t(vtMissing), _variant_t(vtMissing) ); // 一个新工作簿
m_oExcelApp.SetVisible( FALSE );
oWorkBooks.AttachDispatch( m_oExcelApp.GetWorkbooks(), TRUE );
oWorkBook.AttachDispatch( oWorkBooks.GetItem( COleVariant(oWorkBooks.GetCount()) ), TRUE );
oWorkBook.SaveAs( COleVariant( strTempFilePath ),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
0,
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing),
_variant_t(vtMissing) );
oWorkBook.Close( covOptional, COleVariant( strTempFilePath ), covOptional );
解析:Worksheet的copy函数的两个参数是移动的位置,在哪个Worksheet前,在哪个Worksheet后。如果两个参数都不指定,则是复制到新的Workbook中,这个新的Workbook是所有Workbook的最后一个,所以就可以用oWorkBook.AttachDispatch( oWorkBooks.GetItem( COleVariant(oWorkBooks.GetCount()) ), TRUE );来找到。
- Excel编程——复制WorkSheet
- Excel编程——复制WorkSheet
- Excel编程——WorkSheet的名称
- Excel编程——WorkSheet的名称
- VB开发——打开Excel并使特定的worksheet处于激活状态
- Excel 中保护 Worksheet
- C#导出到EXCEL(worksheet)
- Office Excel API (三) Worksheet
- 从Minitab 15的worksheet向Excel 2003中复制和粘贴数据时候出现的问题
- Draw a cube on Excel Worksheet
- Delphi , C# 複製整個Excel WorkSheet 的方法
- .net中将excel导入sqlserver(worksheet专版)
- ODBC 解析EXCEL 文件 选择worksheet name
- C#下操作EXCEL--更改worksheet名
- Write data to an Excel Worksheet
- 文件编程——复制
- Excel每个Worksheet最多只能有65636条记录
- How to automate Excel using MFC and worksheet functions
- 每一位想有所成就的程序员都必须知道的15件事
- Excel操作——禁用警告提示
- Linux系统下的uname命令
- Excel操作——删除工作表
- Excel编程——WorkSheet的名称
- Excel编程——复制WorkSheet
- Excel编程——获得Excel单元格的备注
- 10个经典的Android开源应用项目
- android多线程模型和service分析--华清远见android培训视频教程
- VC6.0生成Excel文件
- JSF标签学习
- VC6.0读取Excel数据
- Javascript和CSS浏览器兼容总结
- 13个对Android开发者有帮助的工具和资源