我正在尝试以下代码:
<?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文件。但我得到的字符如下:
ÐÏࡱá&gt; þÿþÿÿÿ
我尝试使用SaveAs(“D:\ Ourtest.pdf”),它说该文件已损坏或未正确解码。
有人可以帮帮我吗?谢谢
答案 0 :(得分:1)
这是因为您将其另存为Excel格式。查看Excel文档以了解如何将其另存为XML文档 - 它可能是SaveAs
的单独参数,也可能是另一种方法(Export*
)。
编辑:似乎SaveAs
是正确的使用方法。检查msdn documentation here。您可能想要指定第二个参数FileFormat
。也许将其设置为XlFileFormat.xlXMLSpreadsheet
值?
答案 1 :(得分:1)
使用
解决了问题$ex->Application->ActiveWorkbook->SaveAs("D:\Ourtest.xml",46);
46是 xlXMLSpreadsheet 的值 谢谢大家