×

phpexceltable

phpexceltable的简单介绍

admin admin 发表于2023-03-30 05:53:09 浏览76 评论0

抢沙发发表评论

本文目录一览:

php怎么导出大量数据的Excel

php导出大量数据Excel的具体操作步骤如下:

1、使用phpstudy搭建一个测试平台,直接访问数据库。

2、下载的phpcms安装包拷贝到IIS目录,开通访问,即可搭建成功。

3、登录网站后台,系统权限,文件目录以及数据库等功能,进行管理。

4、在phpcms后台,扩展,数据库工具,数据库导出,程序池选择phpcmsv9,开始备份数据。

5、打开IIS网站目录,在D:\wwwroot\kmxy\wwwroot\caches\bakup\default文件夹,查看导出的数据库文件。

6、登录phpmyadmin,选择数据库导出,选择Excel格式,即可导出。

如何用phpexcel导出格式表

1.百度:phpexcel,结果如图所示,点击第一个结果;

2.进入官网后,找到右边的download按钮,下载,下载完成的是一个压缩文件,解压放到你的项目目录里,根据个人情况而定;

3.因为这里给大家做演示,所以建了一个测试文件,有点基础的都能明白是怎么回事,下面进入代码;

4.

//引入PHPExcel库文件(路径根据自己情况)

include './phpexcel/Classes/PHPExcel.php';

//创建对象

$excel = new PHPExcel();

//Excel表格式,这里简略写了8列

$letter = array('A','B','C','D','E','F','F','G');

//表头数组

$tableheader = array('学号','姓名','性别','年龄','班级');

//填充表头信息

for($i = 0;$i count($tableheader);$i++) {

$excel-getActiveSheet()-setCellValue("$letter[$i]1","$tableheader[$i]");

}

5.

//表格数组

$data = array(

array('1','小王','男','20','100'),

array('2','小李','男','20','101'),

array('3','小张','女','20','102'),

array('4','小赵','女','20','103')

);

//填充表格信息

for ($i = 2;$i = count($data) + 1;$i++) {

$j = 0;

foreach ($data[$i - 2] as $key=$value) {

$excel-getActiveSheet()-setCellValue("$letter[$j]$i","$value");

$j++;

}

}

PHP如何导出Excel文件

昨天项目里有个新需求,客户希望把一些数据能导出成为Excel表格,刚开始用PHP原生输入Excel表格,发现效果不是很理想,于是找到一个比较著名的库:PHPExcel。下面是一个简单的demo,分享给大家,希望可以帮到有同样需求的朋友。-phpexceltable

1.百度:phpexcel,结果如图所示,点击第一个结果;

PHP导出Excel,PHP输入Excel

2.进入官网后,找到右边的download按钮,下载,下载完成的是一个压缩文件,解压放到你的项目目录里,根据个人情况而定;

PHP导出Excel,PHP输入Excel

PHP导出Excel,PHP输入Excel

3.因为这里给大家做演示,所以建了一个测试文件,有点基础的都能明白是怎么回事,下面进入代码;

PHP导出Excel,PHP输入Excel

4.

//引入PHPExcel库文件(路径根据自己情况)

include './phpexcel/Classes/PHPExcel.php';

//创建对象

$excel = new PHPExcel();

//Excel表格式,这里简略写了8列

$letter = array('A','B','C','D','E','F','F','G');

//表头数组

$tableheader = array('学号','姓名','性别','年龄','班级');

//填充表头信息

for($i = 0;$i count($tableheader);$i++) {

$excel-getActiveSheet()-setCellValue("$letter[$i]1","$tableheader[$i]");

}

PHP导出Excel,PHP输入Excel

5.

//表格数组

$data = array(

array('1','小王','男','20','100'),

array('2','小李','男','20','101'),

array('3','小张','女','20','102'),

array('4','小赵','女','20','103')

);

//填充表格信息

for ($i = 2;$i = count($data) + 1;$i++) {

$j = 0;

foreach ($data[$i - 2] as $key=$value) {

$excel-getActiveSheet()-setCellValue("$letter[$j]$i","$value");

$j++;

}

}

PHP导出Excel,PHP输入Excel

6.

//创建Excel输入对象

$write = new PHPExcel_Writer_Excel5($excel);

header("Pragma: public");

header("Expires: 0");

header("Cache-Control:must-revalidate, post-check=0, pre-check=0");

header("Content-Type:application/force-download");

header("Content-Type:application/vnd.ms-execl");

header("Content-Type:application/octet-stream");

header("Content-Type:application/download");;

header('Content-Disposition:attachment;filename="testdata.xls"');

header("Content-Transfer-Encoding:binary");

$write-save('php://output');

PHP导出Excel,PHP输入Excel

7.打开页面,刷新的时候会弹出对话框,让你选择文件保存路径和文件名称,我直接放在了桌面上,如图所示;

PHP导出Excel,PHP输入Excel

PHP导出Excel,PHP输入Excel

8.打开表格后,数据和格式跟代码中的一致,说明PHP导出的Excel是正确的。如果出现错误,检查一下你的表格数组和数据数组吧。

PHP导出Excel,PHP输入Excel

使用phpexcel导入excel表格数据到MYSQL,乱码怎么解决

如果你要求的excle表格不是很复杂 .可以用html的table表格来实现.因为excle的兼容性可以打开xml文档.所以你可以使用html文件来当做excle文件.如果比较复杂 ,就要使用phpexcle了 -phpexceltable

这个是网页自动导出的基本思路

如果只是导出几个少数的表和内容

你可以使用phpmyadmin的导出功能.能够实现导出excle文档.

用PHPExcel 怎么批量导入excel??求方法

用PHPExcel,PHPExcel是相当强大的 MS Office Excel 文档生成类库。

你上它的官/网把程序包下/载下来,里面有 PHPExcel 的程序、还有30个实例程序和三个文档。

看一下其中的开发文档你就会用了。

读取(这段在开发文档里有的,在13页):

require_once '../Classes/PHPExcel/IOFactory.php';

$objReader = PHPExcel_IOFactory::createReader('Excel2007');

$objReader-setReadDataOnly(true);

$objPHPExcel = $objReader-load("test.xlsx");

$objWorksheet = $objPHPExcel-getActiveSheet();

echo 'table' . "\n";

foreach ($objWorksheet-getRowIterator() as $row) {

echo 'tr' . "\n";

$cellIterator = $row-getCellIterator();

$cellIterator-setIterateOnlyExistingCells(false);

foreach ($cellIterator as $cell) {

echo 'td' . $cell-getValue() . '/td' . "\n";

}

echo '/tr' . "\n";

}

echo '/table' . "\n";

?

PHPExcel 怎么设置图表的次坐标啊?

什么是次坐标? 坐标不是A2,B2这种吗?

?php

namespace system\models;

use PYP;

use lib\app\CModel;

use system\models\Seed;

use lib\db\Exception;

class Execl extends CModel{

/*

*将数组导出生成execl

*$head 表头,相当于字段名 数组

*$data 数据 数组

*/

function exportexecl($head,$data){

// 创建一个处理对象实例

$objExcel = new \lib\app\Report();

//计算数据条数

$leng = count($data);

$PHPExcel_Cell_DataType=PYP::getAttr('PHPExcel_Cell_DataType');

/*设置当前的sheet索引,用于后续的内容操作。

*一般只有在使用多个sheet的时候才需要显示调用。

*缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0

*/

if($leng5000){

$t = floor($leng/5000) + 1;

for($sheet = 0; $sheet = $t; $sheet++)

{

$objExcel-setActiveSheetIndex(0);

$objActSheet = $objExcel-getActiveSheet();

//设置当前活动sheet的名称

$objActSheet-setTitle('sheet'.$sheet);

//设置单元格内容

//由PHPExcel根据传入内容自动判断单元格内容类型

$objExcel-getActiveSheet()-getDefaultStyle()-getFont()-setName('Arial')-setSize(10);-phpexceltable

$i = 'a';

foreach($head as $title){

$objActSheet-setCellValue($i . '1',$title );

$i++;

}

$j = 2;

foreach ($data as $row){

$i = 'a';

foreach ($row as $cell){

$objActSheet-setCellValueExplicit($i . $j,(string)$cell,$PHPExcel_Cell_DataType::TYPE_STRING);-phpexceltable

$i++;

}

$j++;

}

}

}else{

$objExcel-setActiveSheetIndex(0);

$objActSheet = $objExcel-getActiveSheet();

//设置当前活动sheet的名称

$objActSheet-setTitle('sheet1');

//设置单元格内容

//由PHPExcel根据传入内容自动判断单元格内容类型

$objExcel-getActiveSheet()-getDefaultStyle()-getFont()-setName('Arial')-setSize(10);

$i = 'a';

foreach($head as $title){

$objActSheet-setCellValue($i . '1',$title );

$i++;

}

$j = 2;

foreach ($data as $row){

$i = 'a';

foreach ($row as $cell){

$objActSheet-setCellValueExplicit($i . $j,(string)$cell,$PHPExcel_Cell_DataType::TYPE_STRING);-phpexceltable

$i++;

}

$j++;

}

}

//输出内容

//$objWriter = new PHPExcel_Writer_Excel5($objExcel);

$objExcel-save();

$filename = $objExcel-getFile();

$file = "http://" . ROOT_URL . '/reports/'.$filename . '.xls';

return $file;

}

/*

*进行数据检查,查看execl中的数据是否合法

*将得到的execl中获得的数组插入到数据库临时表中,

*能插入在数据正确,不能再数据错误,并记录改行数据的数组编号

*return $data 原数组数据

* $data['result'] 数据验证结果

* $data['errormsg'] 数据有错误是,返回的数据错误行数

*/

function importexecl_check($fileadd,$tablename,$colums,$session_id){

//获取execl 文本信息,并转换成数组

$object=PYP::getAttr('PHPExcel_CachedObjectStorageFactory');

$cacheMethod = $object::cache_in_memory_gzip;

$cacheSettings = array();

$object=PYP::getAttr('PHPExcel_Settings');

$object::setCacheStorageMethod($cacheMethod,$cacheSettings);

$object=PYP::getAttr('PHPExcel_IOFactory');

$objPHPExcel = $object::load($fileadd);

$data = $objPHPExcel-getSheet(0)-toArray();

//初始化计数变量,当有错误的数据数量超过20条时,则停止继续插入数据,跳出返还结果

$count = 0;

//初始化数据检查结果,如果数据不符合规则,则返回flase

$result = true;

//初始化接受数据变量,最后将execl中的数据返还

$return = array();

//var_dump($data);die;

$lengc = count($colums);

$lengd = count($data[0]);

if($lengc != $lengd){

$return['result'] = false;

$return['errormsg'] = '您上传的execl不符合规格';

return $return;

}

//对表的字段进行处理

$leng = count($data);

$colums = implode(',',$colums);

$colums .= ' ,SessionID';

$tablename .= '_i';

//遍历数据,检查数据是否符合规格

for ($i =1 ;$i $leng;$i++){

$value = '';

foreach($data[$i] as $v){

$value .= "\"" . self::signReplace($v) . "\",";

}

$return['data'][] = $data[$i];

$value .= "'" . $session_id . "'";

$sql = "INSERT INTO $tablename ($colums) VALUES($value)" ;

try{

$result = self::queryEx($sql);

}catch (Exception $e){

$result = false;

}

if(!$result){

$result = false;

$errormsg[] = $i;

$count++;

if($count 20){

break;

}

continue;

}

}

//返回结果 @result ----数据是否有错误

// @errormsg -- 如果有错误,说明错误所在行数

$return['result'] = $result;

if(isset($errormsg)){

$return['errormsg'] = $errormsg;

}else{

$return['errormsg'] = null;

}

//清除本次操作数据库插入的临时表数据

$sql = "delete from " .$tablename. " where SessionID = " .$session_id ;

self::queryEx($sql);

return $return;

}

/*

* 获取execl中的数据

* @path exel路径

*/

public function getexecl($path){

$object=PYP::getAttr('PHPExcel_CachedObjectStorageFactory');

$cacheMethod = $object::cache_in_memory_gzip;

$cacheSettings = array();

$object=PYP::getAttr('PHPExcel_Settings');

$object::setCacheStorageMethod($cacheMethod,$cacheSettings);

$object=PYP::getAttr('PHPExcel_IOFactory');

$objPHPExcel = $object::load($path);

$data = $objPHPExcel-getSheet(0)-toArray();

$leng = count($data);

$data = array_slice($data,1,$leng-1);

return $data;

}

/*导入到数据库*/

public function importexcle($tablename,$colums,$key,$data,$dbkey){

//初始化返回结果

$result = array();

$result['result'] = true;

//查找逻辑key 所在的列

foreach ($colums as $k = $v){

if($v == $key){

$datakey = $k;

}

}

if(!isset($datakey)){

$result['result'] = false;

$result['errormsg'] = "表中字段没有业务key" ;

return $result;

}

$leng = count($data);

$columstr = implode(',',$colums);

$columstr .= ' ,' .$dbkey ;

//插入或者更新execl数据

foreach ($data as $k = $v){

if(empty($v[$datakey])){

$result['result'] = false;

$result['errormsg'][] = "业务编号不能为空或者不能为0" ;

break;

}

$sql = "SELECT " . $key . " from " . $tablename . " where " . $key . " = \"" . self::signReplace($v[$datakey]) . "\"";-phpexceltable

$count = self::query($sql);

if (empty($count)){

$str = '';

foreach($v as $cell){

if($cell === '' || $cell === null ){

$str .= 'null' . ',';

}else{

$str .= "\"" . self::signReplace((string)$cell) . "\",";

}

}

$seedid = Seed::GetSeedId($dbkey);

$str .= "'" . $seedid . "'";

$sql = "INSERT INTO " . $tablename ." (" . $columstr .") VALUES(" .$str .")" ;

try{

self::queryEx($sql);

}

catch(Exception $e)

{

$result['result'] = false;

$result['errormsg'][] = $k;

}

}

else{

$sql = "update " . $tablename ." set " ;

foreach ($v as $ck = $cv){

if($colums[$ck] === '' || $colums[$ck] === null){

$sql .= $colums[$ck] . ' = null ,';

}else{

$sql .= $colums[$ck] ." = \"" . self::signReplace((string)$cv) ."\", ";

}

}

$sql = substr($sql,0,-2);

$sql .= " where " . $colums[$datakey] . " = \"" . self::signReplace($v[$datakey]) . "\"";-phpexceltable

try{

self::queryEx($sql);

}

catch (Exception $e){

$result['result'] = false;

$result['errormsg'][] = $k;

}

}

}

return $result;

}

/*导入到数据库*/

public function excleinsert($tablename,$colums,$data,$dbkey){

//初始化返回结果

$result = array();

$result['result'] = true;

$leng = count($data);

$columstr = implode(',',$colums);

$columstr .= ' ,' .$dbkey ;

$lengc = count($colums);

$lengd = count($data[0]);

if($lengc != $lengd){

$return['result'] = false;

$return['errormsg'] = '您上传的execl不符合规格';

return $return;

}

//插入execl数据

foreach ($data as $k = $v){

$str = '';

foreach($v as $cell){

$str .= "\"" . self::signReplace((string)$cell) . "\",";

}

$seedid = Seed::GetSeedId($dbkey);

$result['dbkey'][] = $seedid;

$str .= "'" . $seedid . "'";

$sql = "INSERT INTO " . $tablename ." (" . $columstr .") VALUES(" .$str .")" ;

try{

self::queryEx($sql);

}

catch(Exception $e)

{

$result['result'] = false;

$result['errormsg'][] = $k;

}

}

return $result;

}

}