2010-03-25 130 views
0

我試着下面的代碼Excel文件:打開使用COM並將其保存爲.xml文件

<?php 

    $workbook = "D:\b2\\test.XLS"; 
    $sheet = "Sheet1"; 

    #Instantiate the spreadsheet component. 
     $ex = new COM("Excel.sheet") or Die ("Did not connect"); 

    #Get the application name and version  
     print "Application name:{$ex->Application->value}<BR>" ; 
     print "Loaded version: {$ex->Application->version}<BR>"; 

    #Open the workbook that we want to use. 
     $wkb = $ex->application->Workbooks->Open($workbook) or Die ("Did not open"); 

    #Create a copy of the workbook, so the original workbook will be preserved. 
     $ex->Application->ActiveWorkbook->SaveAs("D:\b2\Ourtest.xml"); 
     #$ex->Application->Visible = 1; #Uncomment to make Excel visible. 



    #Optionally, save the modified workbook 
     $ex->Application->ActiveWorkbook->SaveAs("D:\Ourtest.xml");      
    #Close all workbooks without questioning 
     $ex->application->ActiveWorkbook->Close("False");  
     unset ($ex); 

    ?> 

這實際工作,並創建Ourtest.xml文件。但即時得到字符,如:

ÐÏࡱA>你þÿÿÿ
我試圖與另存爲(「d:\ Ourtest.pdf」)和它說該文件已損壞或不正確解碼。 任何人都可以幫助我嗎?謝謝

回答

1

問題通過使用

$ex->Application->ActiveWorkbook->SaveAs("D:\Ourtest.xml",46); 

46解決爲xlXMLSpreadsheet
謝謝大家

1

這是因爲您將它保存爲Excel格式。查看Excel文檔,瞭解如何將其保存爲XML文檔 - 它可能是SaveAs或其他方法的一個獨立參數(Export*)。

編輯:看來SaveAs是正確的使用方法。檢查msdn documentation here。您可能需要指定第二個參數FileFormat。也許將其設置爲XlFileFormat.xlXMLSpreadsheet的值?

+0

和文檔是在http://msdn.microsoft.com/en-us/library值/bb214129.aspx – VolkerK 2010-03-25 08:39:36

+0

感謝您的鏈接 – chupinette 2010-03-25 08:49:04

+0

$ ex-> Application-> ActiveWorkbook-> SaveAs(「D:\ b2 \ Ourtest.xml」,XlFileFormat.xlXMLSpreadsheet); 應該是這樣嗎? – chupinette 2010-03-25 08:50:48

相關問題