在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元起,快前往官网查看详情吧