php上傳xls文件夾,php讀取xls

本文目錄一覽:

利用php導入excel文件

【步驟1】在前台html頁面進行上傳文件

form method=”post” action=”php文件” enctype=”multipart/form-data” 

h3導入Excel表:/h3input  type=”file” name=”file_stu” /

input type=”submit”  value=”導入” /

/form

【步驟2】在對應的php文件進行文件的處理

 if (! empty ( $_FILES [‘file_stu’] [‘name’] ))

 {    $tmp_file = $_FILES [‘file_stu’] [‘tmp_name’];    $file_types = explode ( “.”, $_FILES [‘file_stu’] [‘name’] );    $file_type = $file_types [count ( $file_types ) – 1];

     /*判別是不是.xls文件,判別是不是excel文件*/     if (strtolower ( $file_type ) != “xls”)                  {          $this-error ( ‘不是Excel文件,重新上傳’ );     }

    /*設置上傳路徑*/     $savePath = SITE_PATH . ‘/public/upfile/Excel/’;

    /*以時間來命名上傳的文件*/     $str = date ( ‘Ymdhis’ );      $file_name = $str . “.” . $file_type;

     /*是否上傳成功*/     if (! copy ( $tmp_file, $savePath . $file_name ))       {          $this-error ( ‘上傳失敗’ );      }

    /*

*對上傳的Excel數據進行處理生成編程數據,這個函數會在下面第三步的ExcelToArray類中

注意:這裡調用執行了第三步類裡面的read函數,把Excel轉化為數組並返回給$res,再進行數據庫寫入

    */  $res = Service ( ‘ExcelToArray’ )-read ( $savePath . $file_name );

   /*

重要代碼 解決Thinkphp M、D方法不能調用的問題

如果在thinkphp中遇到M 、D方法失效時就加入下面一句代碼

*/

 //spl_autoload_register ( array (‘Think’, ‘autoload’ ) );

/*對生成的數組進行數據庫的寫入*/

foreach ( $res as $k = $v )    {       if ($k != 0)       {           $data [‘uid’] = $v [0];           $data [‘password’] = sha1 ( ‘111111’ );           $data [’email’] = $v [1];

           $data [‘uname’] = $v [3];

          $data [‘institute’] = $v [4];         $result = M ( ‘user’ )-add ( $data );         if (! $result)          {              $this-error ( ‘導入數據庫失敗’ );          }      }   }

}

【步驟3】ExcelToArrary類,用來引用phpExcel並處理Excel數據的

class ExcelToArrary extends Service{

 public function __construct() {

     /*導入phpExcel核心類    注意 :你的路徑跟我不一樣就不能直接複製*/     include_once(‘./Excel/PHPExcel.php’); }

/**

* 讀取excel $filename 路徑文件名 $encode 返回數據的編碼 默認為utf8

*以下基本都不要修改

*/

public function read($filename,$encode=’utf-8′){

          $objReader = PHPExcel_IOFactory::createReader(‘Excel5’);

          $objReader-setReadDataOnly(true);

          $objPHPExcel = $objReader-load($filename);

          $objWorksheet = $objPHPExcel-getActiveSheet();

  $highestRow = $objWorksheet-getHighestRow();   $highestColumn = $objWorksheet-getHighestColumn();     $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);     $excelData = array();   for ($row = 1; $row = $highestRow; $row++) {       for ($col = 0; $col  $highestColumnIndex; $col++) {                  $excelData[$row][] =(string)$objWorksheet-getCellByColumnAndRow($col, $row)-getValue();           }          }         return $excelData;

    }

}

php 上傳excel 表格 PHPExcel類,出現錯

ZipArchive library is not enabled:出現這個錯誤說明是程序在調用’ZipArchive’ 這個類的時候沒有成功,原因是由於在安裝php的時候沒有增加php zip的支持(非zlib)。

請在php.ini找到extension=php_zip.dll並把前面的分號去掉(如果沒有,請添加extension=php_zip.dll此行並確保php_zip.dll文件存在相應的目錄),保存後重啟php即可。

在Unix/Linux下的解決辦法:

1、在Linux下沒有php_zip.dll這個文件(有也不會起作用的),所以需要重新編譯一下php的zip模塊。具體安裝方法如下:

cd /usr/src

wget

tar -zxvf zip

cd zip-1.x.x

phpize

./configure

make

sudo make instal

其中, 在最後使用make install命令的時候,可能需要用到root的權限,所以建議使用sudo來運行。安裝完之後,屏幕上會提示zip.so的位置。然後將其記錄下來,如:/usr/local/lib/php/extensions/zip.so。

2、使用root權限修改php.ini(通常可能會在/usr/local/lib/文件夾下,不過視當初安裝php而定,可以通過phpinfo()來查看):

增加extension = /usr/local/lib/php/extensions/zip.so,然後同樣在php.ini文件中,將 zlib.output_compression = Off 改為 zlib.output_compression = On ;

3、最後別忘了重啟一下Apache:apachectl restart;

這個針對php的zip模塊就安裝完成了,能夠在php中使用ZipArchive類了。

求PHP上傳文件夾的三種解決方案

1 壓縮上傳(用戶把文件夾壓縮後上傳),

2 input里加這個屬性webkitdirectory就是默認可以上傳文件夾了。谷歌瀏覽器可以。其他瀏覽器好像不行

3 業務上進行優化 如:(上傳時還是上傳文件,但是需要填寫文件夾得名稱,上傳之後,後台根據文件夾名稱,自動創建文件夾)

php導入xls格式的文件,需要注意什麼?

1. 以.csv格式讀取

將.xls轉換成.csv的文本格式,然後再用PHP分析這個文件,和PHP分析文本沒有什麼區別。

優點:跨平台,效率比較高、可以讀寫。

缺點:只能直接使用.csv的文件,如果經常接受.xls二進制文件的話需要手工轉換,不能自動化。一個文件只有一個SHEET。

PHP有自帶的分析.csv函數:fgetcsv

2. ODBC鏈接數據源

優點:支持多種格式,cvs, xls等。支持讀寫,使用標準SQL語言,和SQLSERVER、MYSQL數據庫幾乎完全一樣。

缺點:值支持windows服務器

3. PHP自定義類

優點:跨平台。某些類支持寫操作。支持.xls二進制文件

常用的類有phpExcelReader、PHPExcel。其中後者支持讀寫,但是需要php5.2以上版本。

phpExcelReader是專門用來讀取文件的。返回一個數組,包含表格的所有內容。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/293079.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-25 18:39
下一篇 2024-12-25 18:39

相關推薦

  • Idea新建文件夾沒有java class的解決方法

    如果你在Idea中新建了一個文件夾,卻沒有Java Class,應該如何解決呢?下面從多個方面來進行解答。 一、檢查Idea設置 首先,我們應該檢查Idea的設置是否正確。打開Id…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 百度網盤Python上傳

    百度網盤是一個常用的雲存儲平台,提供了多種上傳文件的方式,其中包括使用Python進行上傳。本文將從安裝Python、安裝依賴庫、上傳文件三個方面進行詳細闡述。 一、安裝Pytho…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 如何使用git拉出某個用戶上傳的文件?

    Git是一個非常流行的版本控制系統,它可以幫助團隊協作,並保證代碼的版本控制。有時候,我們需要拉出某個用戶上傳的文件,但不知道從哪裡開始。本文將會從多個方面詳細闡述如何使用git拉…

    編程 2025-04-28
  • 上傳多媒體文件的常用方法——uploadmediabyurl

    uploadmediabyurl是一個非常常用的方法,它允許我們將本地的多媒體文件上傳到微信服務器上。 一、uploadmediabyurl的基本使用方法 要使用uploadmed…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • NB設備上傳數據方案

    NB(Narrow Band)是一種物聯網通信技術,可以實現低功耗、寬覆蓋、多連接等特點。本文旨在探討如何使用NB設備上傳數據。在這篇文章中,我們將介紹NB設備上傳數據的基本原理、…

    編程 2025-04-27
  • Python打開文件夾下所有文件

    本文將從以下幾個方面對Python打開文件夾下所有文件進行詳細闡述,希望對大家有所幫助: 一、如何使用Python打開指定文件夾下的所有文件 在Python中,可以使用os模塊的w…

    編程 2025-04-27

發表回復

登錄後才能評論