包含嵌入式图表的Excel.Application副本表

时间:2014-05-12 10:38:28

标签: php excel vba excel-vba charts

我有一个使用Excel.Application的php页面来复制包含一些数据和嵌入图表的工作表。

代码是这样的:

$Excel=new COM("Excel.application");
$workbook=$Excel->Workbooks->Open($fileName);

//alternative 1
$workbook->Worksheets("Sheet1")->Copy(NULL,$workbook->Worksheets("Sheet2"));

//alternative 2
$added=$workbook->Worksheets->Add();
$added->Name=$destName;
$workbook->Worksheets($sourceName)->Range("A1:Z100")->Copy($added->Range("A1"));

$workbook->SaveAs($fileNameDest);

结果是数据和公式被正确复制和格式化,但sheet1中的图表不会复制到sheet2中。没有错误,没有例外,但也没有代码替换的图表。

任何人都可以帮我复制这张表吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

存在权限问题:

  • 执行“dcomcnfg”
  • 打开组件服务>电脑>我的电脑> DCOM配置
  • 搜索“Microsoft Excel Application”
  • 右键单击它并打开属性
    • 如果不存在则运行“excel.exe -regserver”
  • 选择“身份”标签
  • 通常将其设置为“启动用户”。您必须将其更改为“交互式用户”或您选择的管理员用户。
  • 应用这些新设置并测试您的COM应用程序。它现在应该可以正常工作。

我从这里的评论中得到了它:http://www.php.net/manual/en/class.com.php