您的位置:

关于php上传excel工具类的信息

本文目录一览:

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类了。