2014-05-12 29 views
6

我有一個使用Excel.Application複製包含一些數據和嵌入圖表的表單的php頁面。帶嵌入圖表的Excel.Application副本表

的代碼是這樣的:

$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); 

其結果是,數據和公式正確複製和格式化,但在Sheet 1中圖表未在Sheet 2中複製。沒有錯誤,沒有例外,但也沒有兩種代碼替代方案的圖表。

任何人都可以幫我複製這張紙...完全?

謝謝!

+0

這些方法無論是在純VBA工作。我不是一個PHP的傢伙,但我想至少在那個時候做出響應;在這兩種情況下,複製方法的默認功能都應該複製圖表(注意:如果chartObject不在A1:Z100範圍內,則第二種方法不會複製圖表)。 –

+0

該對象位於單元格B2中。 – Redax

+0

我認爲是一種類似的認證失敗。我已經在WAMP服務器上的Seven Machine上測試過了,它工作正常。在Windows 2008服務器上,IIS失敗。 – Redax

回答

2

有權限問題:

  • 執行 「DCOMCNFG」
  • 打開組件服務>計算機>我的電腦> DCOM配置
  • 搜索 「Microsoft Excel應用程序」
  • 右擊並打開屬性
    • 如果不存在運行「excel.exe -regserver」
  • 選擇「身份」選項卡
  • 通常將其設置爲「啓動用戶」。您必須將其更改爲「交互式用戶」或您選擇的管理員用戶。
  • 應用這些新設置並測試您的COM應用程序。它應該現在工作正常。

我是從這裏的評論:http://www.php.net/manual/en/class.com.php

+0

謝謝!我已經編輯了一點answare:現在它工作! – Redax

+0

很高興聽到它。這在黑暗中有點像 –