簡體   English   中英

PHPExcel將Excel內容轉儲到屏幕上

[英]PHPExcel dumping Excel contents onto Screen

我是第一次使用PHPExcel。 我剛剛寫了一個基本的代碼片段來讀取我的一個Excel文件。 我想加載文件,遍歷每一行並處理其內容。 但是,加載文件的功能似乎將其內容轉儲到屏幕上。

我的代碼片段是這樣的:

      include 'lib/Classes/PHPExcel/IOFactory.php';
      $dest = "uploads/";
      $excel = "2012-12-STANDARD.xls";

      $objPHPExcel = PHPExcel_IOFactory::load($dest.$excel);

運行此代碼時,工作表中的數據已在屏幕上回顯兩次。 首先,像常規回聲一樣,第二個是var_dump。

以下是屏幕輸出的示例代碼段:

DOM元素:HTML DOM元素:BODY DOM元素:P段開始:段落結束:FLUSH CELL:A1 =>類型ZipCode城市州區域區域城市類型CityAlias縮寫CityAliasName緯度經度TimeZone海拔縣FIPS DayLightSaving PreferredLastLineKey ClassificationCode MultiCounty StateFIPS CityStateKey CityAliasCode PrimaryRecord CityMixedCase CityAliasMixedCase StateANSI CountyANSI FacilityCode CityDeliveryIndi​​cator CarrierRouteRateSortation FinanceNumber UniqueZIPName D 18540 ......

數組1 =>數組'A'=>字符串'類型ZipCode城州州AreaCode CityType CityAliasAbbreviation CityAliasName緯度經度TimeZone海拔縣FIPS DayLightSaving PreferredLastLineKey ClassificationCode MultiCounty StateFIPS CityStateKey CityAliasCode ........'...(length = 4573)

我在這里做錯了嗎? 為什么load函數在訪問之前會回顯內容?

問題的原因是IOFactory靜態load方法無法正確確定文件的格式。 畢竟你可能不想使用它,因為根據文檔:

雖然易於在代碼中實現,但您不必擔心文件類型; 這不是加載文件的最有效方法 ; 並且在將文件實際讀入PHPExcel對象之前,它缺乏以任何方式配置加載器的靈活性。

要成功加載文件,您可以實例化顯式指定格式的Reader 對於Excel 2007格式的文件,它將是:

$xl_reader = PHPExcel_IOFactory::createReader('Excel2007');
$xl = $xl_reader->load("/tmp/yourfile.xls");

您還可以使用Reader的canRead()方法來確定您創建的閱讀器是否可以加載指定的文件。

$xl_reader = PHPExcel_IOFactory::createReader('Excel2007');
if ($xl_reader->canRead('/tmp/yourfile.xls')) {
    echo "It's a success! Loading the file..."; 
    $xl = $xl_reader->load('/tmp/yourfile.xls');
    ...
} else {
    echo "Cannot read the file.";
    ...
}

該代碼正在接收HTML Reader,它仍然在代碼中有一些診斷(mea culpa)...如果您編輯文件Classes / PHPExcel / Reader / HTML.php並注釋掉包含回聲的每一行或者var_dump語句,那么它應該消除問題。

巧合的是,這是我昨晚實際工作的事情。

然后,您也可以要求提供該文件的人在將來為您提供正確的.xls文件,而不是擴展名為.xls但包含html標記而不是格式正確的BIFF文件的文件。

嘗試將PHPExcel添加到PHP包含路徑。

  set_include_path(get_include_path().PATH_SEPARATOR.'lib/Classes/PHPExcel');
  include 'lib/Classes/PHPExcel/IOFactory.php';
  $dest = "uploads/";
  $excel = "2012-12-STANDARD.xls";

  $objPHPExcel = PHPExcel_IOFactory::load($dest.$excel);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM