COM kullanarak bir excel dosyası açın ve. Xml dosyası olarak kaydedin

2 Cevap php

Aşağıdaki kodu çalışıyor Im:

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

    ?> 

Bu aslında çalışır ve Ourtest.xml dosyasını oluşturur. Ama im gibi karakterleri alıyorum:

ÐÏࡱá > þÿ þÿÿÿ
I have tried with SaveAs("D:\Ourtest.pdf") and it says the file has been corrupted or incorrectly decoded. Can anyone help me please?Thanks

2 Cevap

Sorun kullanılarak çözüldü

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

46 is the value for xlXMLSpreadsheet
Thanks everyone

Excel Format olarak kaydediyorsunuz olmasıdır. Bir XML belgesi olarak kaydetmek için nasıl Excel belgelerini denetleyin - bu SaveAs ayrı bir Parametresi veya alltogether farklı bir yöntem olabilir (Export*).

EDIT: O SaveAs kullanmak için doğru bir yöntem gibi görünüyor. msdn documentation here edin. Muhtemelen ikinci parametre FileFormat belirtmek istiyorum. Belki XlFileFormat.xlXMLSpreadsheet değere ayarlayarak?