C++通过EXCEL组件复制工作表的参数问题-创新互联

在C++调用EXCEL组件的函数CWorksheet.Copy时有两个参数,分别是After和Before,类型都是const VARIANT&,按C#的代码应该传递worksheet,开始以为传递CWorksheet对象就行了,结果出现错误,网上找了很久,不知道如何解决。

创新互联建站专注于大安企业网站建设,成都响应式网站建设公司,商城网站建设。大安网站建设公司,为大安等地区提供建站服务。全流程按需制作网站,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

最终在下面这个链接中找到答案:

https://social.msdn.microsoft.com/Forums/office/en-US/bca8c682-5541-4caa-a453-4976ebc44d19/c-cworksheets-add-method-problem?forum=exceldev

在C#操作很简单,首先引用命名空间,并起一个别名:

using Excel = Microsoft.Office.Interop.Excel;

然后新建一个工作簿

Excel.Application xlApp = new Excel.Application();

Excel.Workbook wb = xlApp.Workbooks.Add();

Excel.Worksheet ws1 = wb.Worksheets[1]; // sheet1

ws1.Name = "test1";  // 改名为test1

ws1.Cells[1, 1] = 123;  // 随便填一些内容

ws1.Copy(Before: ws1);  // 将test1工作表复制到test1之前

Excel.Worksheet ws2 = wb.Worksheets[1];

ws2.Name = "test2";  // 改名为test2

//ws1.Copy(After: ws1);  // 将test1工作表复制到test1之后

//Excel.Worksheet ws2 = wb.Worksheets[2];

//ws2.Name = "test2";

...

在C++中这个Copy函数的参数应该是CWorksheet对象的数据成员m_lpDispatch。

CWorksheet ws = Worksheets.get_Item(COleVariant((short)1));

ws.Copy(m_covOptional, _variant_t(ws.m_lpDispatch));

ws.Copy(_variant_t(ws.m_lpDispatch), m_covOptional);

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享标题:C++通过EXCEL组件复制工作表的参数问题-创新互联
URL地址:http://scyanting.com/article/dhsgdo.html