2012-01-24 34 views
0

對於CSV是:簡單解析Excel中的對象或變量,同樣與XML或CSV

<?php 
$row = 1; 
if (($handle = fopen("test.csv", "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     $num = count($data); 
     echo "<p> $num fields in line $row: <br /></p>\n"; 
     $row++; 
     for ($c=0; $c < $num; $c++) { 
      echo $data[$c] . "<br />\n"; 
     } 
    } 
    fclose($handle); 
} 
?> 

對於XML:

<?php 
// The file test.xml contains an XML document with a root element 
// and at least an element /[root]/title. 

if (file_exists('test.xml')) { 
    $xml = simplexml_load_file('test.xml'); 

    print_r($xml); 
} else { 
    exit('Failed to open test.xml.'); 
} 
?> 

這是非常簡單的方式來解析。 EXCEL有可能嗎?我不想用excel讀者等。我想要簡單的解析器,與xml或csv一樣。 這是最好的方式?也許解析Excel到CSV或XML,但如何?

+1

爲什麼你不想使用excel讀取器庫來讀取excel數據,但不知何故期望有一個「魔術」解析器存在......你認爲excel讀取器庫是什麼?如果你想簡單,手動使用MS Excel「另存爲」CSV,然後fgetcsv()在您的腳本 –

+0

我想只從Excel中獲取數據,而不是編輯等 –

+0

任何圖書館是「Excel Reader」只給你獲取數據的能力,而不是編輯....「Excel Writer」庫爲您提供了編寫...的能力,並且很少有庫可以讓您讀取和寫入,即編輯 –

回答

1

沒有一個Excel格式庫...有兩種常見的格式:BIFF .xls文件(用於Excel 2003)和OfficeOpenXML .xlsx文件(用於Excel 2007和Excel 2010),更不用提SpreadsheetML,這是Excel 2003很少使用的替代格式。格式簡單如CSV或甚至是「香草」XML:即使OfficeOpenXML格式包含壓縮目錄層次結構中的一系列相互關聯的XML文件。

然後,您還可以考慮電子表格文件中存在的格式和其他功能(多個工作表,隱藏/合併的列/行,樣式,圖像,圖表等)。這也意味着它不是瑣碎的任務來解析文件,並以簡單的方式呈現它們

有許多PHP庫(和其他替代品)可用於訪問電子表格數據和/或用於從PHP創建/編輯電子表格文件。 m負責開發其中一個庫(PHPExcel),並編譯了一個list of the alternatives,回答StackOverflow上的以前的問題。

如果您只想讀取電子表格數據,則從列表中選擇一個讀取器:如果您想創建新的電子表格,請選擇一位作者。如果您想編輯現有的工作簿,那麼您確實需要支持讀取和寫入的少數庫/選項之一。 並注意支持的文件格式...並非所有庫都支持BIFF .xls和.xlsx。

1

Excel文件不只是簡單的文本文件.. CSV和XML文件是純文本文件。因此,你需要能真正解析Excel文件

+0

但是,有一些桌面應用程序可以將Excel文件批量轉換爲CSV文件,只是Google它..順便說一句,解析CSV文件比較容易,就像代碼中的那樣 –