本文目錄一覽:
- 1、php如何實現上傳導入excel數據?
- 2、如何用php實現上傳excel
- 3、怎麼寫一個php能實現上傳excel並導入進mysql呢?還有怎麼從mysql導出進一個新的exc
- 4、php 上傳excel 表格 PHPExcel類,出現錯
php如何實現上傳導入excel數據?
難道你導入的時候不是選擇的本地 文件嗎?input框獲取之後 提交過去就可以導入了啊 phpexcel中有例子的啊 可以看看簡單的嘛 基本上 按那個例子改點東西就可以用了啊
如何用php實現上傳excel
第一,在前台html頁面進行上傳文件:如:
複製代碼代碼如下:
form method=”post” action=”php文件”enctype=”multipart/form-data”
h3導入Excel表:/h3input type=”file” name=”file_stu” /
input type=”submit” value=”導入”/
/form
第二,在對應的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 ( ‘導入數據庫失敗’ );
}
}
}
}
第三: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並導入進mysql呢?還有怎麼從mysql導出進一個新的exc
可以使用excel插件,這個相對複雜。
說個非常簡單的,一般ecel文件可以保存成為csv文件,然後你就可以進行csv的文件處理。
csv的組成一般是
col1,col2,col3
col12,col22,col33
可見,只要使用explode 兩次就可以得到一個
array(
array(ccol1,col2,col3),
array(col12,col22,col33);
)
二維數組,然後批量導入這個二維數組就很簡單了。
導出是一樣的額,寫入一個,想辦法把取出的數據構造成
col1,col2,col3
col12,col22,col33
這樣的字符串,然後使用header函數即可導出csv文件,csv可以使用excel直接打開
純手打,望採納!
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類了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/300391.html