Php 使用COM打开excel文件并将其另存为.xml文件

Php 使用COM打开excel文件并将其另存为.xml文件,php,xml,excel,com,Php,Xml,Excel,Com,我正在尝试以下代码: <?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

我正在尝试以下代码:

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

    ?> 
Application->Visible=1#取消注释以使Excel可见。
#(可选)保存修改后的工作簿

$ex->Application->ActiveWorkbook->SaveAs(“D:\Ourtest.xml”); #毫无疑问地关闭所有工作簿 $ex->应用程序->活动工作簿->关闭(“假”); 未结算(美元除外); ?>
这实际上起作用并创建了Ourtest.xml文件。但我得到的角色是:

ÐÏÿÿÿÿÿ
我试过使用SaveAs(“D:\Ourtest.pdf”),它说文件已损坏或解码错误。
有人能帮我吗?谢谢,这是因为您正在将其保存为Excel格式。查看Excel文档以了解如何将其保存为XML文档-它可能是
SaveAs
的单独参数,也可能是一个不同的方法(
Export*


编辑:似乎
SaveAs
是正确的使用方法。检查一下。您可能需要指定第二个参数
FileFormat
。也许可以将其设置为
XlFileFormat.xlxmlseadsheet
值?

通过使用

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

谢谢大家

文档位于$ex->Application->ActiveWorkbook->SaveAs(“D:\b2\Ourtest.xml”,XlFileFormat.xlxmlseadsheet);应该是这样吗?$ex->Application->ActiveWorkbook->SaveAs(“D:\Ourtest.xml”,Excel.XlFileFormat.xlXMLSpreadsheet);我已经尝试过了,但是我得到了“无法获取SaveAs属性…”尝试输出“Excel.XlFileFormat.xlxmlsepeadsheet”-这样行吗?如果不是,则使用VBA打印该常量的值,并在PHP中定义该值。