php读取excel php如何修改excel

经验直达:

  • php如何修改excel
  • php读取excel
  • php如何读取excel中的数据

一、php如何修改excel



php修改excel的方法:首先实例化Excel读取类;然后通过“$PHPReader->load($dir.$templateName);”方法读取Excel;最后实例化Excel写入类并修改相关内容即可 。
推荐:《PHP视频教程》
php更新修改excel中的内容示例
//模板存放目录
$dir = $DOCUMENT_ROOT.'/backoffice/admin/oemcheck/';


$templateName = '1.xlsx';
$outputFileName = '模板.xlsx';
$txt='test';

//实例化Excel读取类
$PHPReader = new PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($dir.$templateName)){
$PHPReader = new PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($dir.$templateName)){
echo '无法识别的Excel文件!';
return false;
}
}
//读取Excel
$PHPExcel = $PHPReader->load($dir.$templateName);
//读取工作表1
$currentSheet = $PHPExcel->getSheet(0);

$currentSheet->setCellValue('B13',iconv('gbk','utf-8',$txt));//表头赋值//
//实例化Excel写入类
$PHPWriter = new PHPExcel_Writer_Excel2007($PHPExcel);
ob_start();
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:attachment;filename="' .$outputFileName. '"');//输出模板名称
header("Content-Transfer-Encoding: binary");
header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
header('Pragma: public');
header('Expires: 30');
header('Cache-Control: public');
$PHPWriter->save('php://output');


二、php读取excel


【php读取excel php如何修改excel】php有个PHPExcel扩展,是可以实现你的要求的 。
我这里有个可以读取多个工作薄的自定义excel类,试试看:

ParseFromString($fc);

$ws_number = count($exc->worksheet['name']);//取得工作薄数量

if( $ws_number < 1 )
{
return -3;
}

for ($ws_n = 0; $ws_n < $ws_number; $ws_n)
{
$ws = $exc -> worksheet['data'][$ws_n];
$data = https://www.itzhengshu.com/excel/$ws['cell'];
foreach($data as $k=>$v)//一行数据
{
$row = null;
foreach($v as $a=>$d)//一行数据的一个字节
{
$value = https://www.itzhengshu.com/excel/null;
if(count($d) == 1)
{
continue;
}
if($d['type'] == 0)//如果是字符类型则转换成为指定编码格式
{
$ind = $d['data'];
if( $exc->sst['unicode'][$ind] ) //返回数据编码格式
{
switch($toCode)
{
case "utf8":
$s = Strings::uc2utf8($exc->sst['data'][$ind]);
break;
case "gbk":
$s = Strings::uc2gbk($exc->sst['data'][$ind]);
break;
case "html":
$s = Strings::uc2html($exc->sst['data'][$ind]);
break;
default:
$s = Strings::uc2utf8($exc->sst['data'][$ind]);
break;
}
}
else
{
$s = $exc->sst['data'][$ind];
}
if( strlen(trim($s))==0 || $s === null )
{
$valuehttps://www.itzhengshu.com/excel/= '';
}
else
{
$value = https://www.itzhengshu.com/excel/$s;
}
}
elseif($d['type'] == 3)
{
$time_list= explode('.', $d['data']);
$time_format = $time_list[2].'-'.$time_list[0].'-'.$time_list[1];
$timestamp = strtotime($time_format);
$value = https://www.itzhengshu.com/excel/date("Y-m-d H:i:s", $timestamp);
}
else
{
$value = https://www.itzhengshu.com/excel/$d['data'];
}
$row[$a] = $value;
}
$recordList[] = $row;
}
}
return $recordList;
}
}
require_once('./excel.class.php');
$emailData = https://www.itzhengshu.com/excel/Excel::getDataFromExl($_FILES['file_name']['tmp_name']);


三、php如何读取excel中的数据




1、搭建php程序运行环境来执行程序 , 只要能让程序运行起来就行
2、下载PHPExcel.php类文件以及相关组件
3、包含到要运行的文件中 require PHPExcel.php,创建对象默认用excel2007读取excel,若格式不对,则用之前的版本进行读取
4、读取excel的工作表可以是多个,如果你只需要读取第一个那么就用 $PHPExcel->getSheet(0) , 如果是多个就在循环中进行操作其他内容
5、分别获取 excel表的行和列
$allColumn = $currentSheet->getHighestColumn();
/**取得一共有多少行*/
$allRow = $currentSheet->getHighestRow();
/**从第二行开始输出,因为excel表中第一行为列名*/
6、在行和列的双循环中来读取对应的数据
for($currentRow = 2;$currentRow <= 98;$currentRow){
/**从第A列开始输出*/
echo"";
//for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn){
$cancername="";
for($currentColumn= 'A';$currentColumn<='B'; $currentColumn){两个for交叉定位可以读取单元格的数据
推荐教程:PHP视频教程

-->

相关经验推荐