温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHPexcel笔记

发布时间:2020-05-18 23:27:48 来源:网络 阅读:692 作者:kangjunfei 栏目:web开发

首选去下载phpexcel文件包

1.phpexcel把excel表格数据导入mysql‘数据库中规定的表中
前端:
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="10%" height="30" align="right" bgcolor="#f2f2f2" class="left_txt2">上传文件</td>
<td width="1%" bgcolor="#f2f2f2"> </td>
<td width="32%" height="30" bgcolor="#f2f2f2">
<input type="file" name="excelPacket" class="file">
</td>

                                </tr>
                                <tr>
                                    <td height="30" colspan="4" align="center" class="left_txt"><input type="submit" name="button" id="button" value="创建" />
                                        &nbsp;
                                        <input type="reset" name="button2" id="button2" value="重置" /></td>
                                </tr>

                            </table></td>
                        </td>
                    </tr>

注:mysql表里的字段要和excel表格的表头一致方便导入
header("Content-type:text/html;charset=utf-8");
require_once 'backend_islogin.php';
require_once '../db/Db.php';
require_once '../backend/PHPExcel/PHPExcel.php';
//实例化类
$PHPReader = new PHPExcel_Reader_Excel2007();
//接收前端传过来的file文件
$fileExtArr = explode(".",$_FILES['excelPacket']['name']);
$fileExt = ".".$fileExtArr[1];
//加密存放到指定文件夹下
$path=$_SERVER['DOCUMENT_ROOT'].'/excelupload/'.time().md5($_FILES['excelPacket']['name'].rand()).$fileExt;
move_uploaded_file($_FILES['excelPacket']['tmp_name'],$path);
if( ! $PHPReader->canRead($path))
{
$PHPReader = new PHPExcel_Reader_Excel5();
if( ! $PHPReader->canRead($path)){
echo 'no Excel';
return ;
}
}

$PHPExcel = $PHPReader->load($path); //读取文件
$currentSheet = $PHPExcel->getSheet(0); //读取第一个工作簿
$allColumn = $currentSheet->getHighestColumn(); // 所有列数
$allRow = $currentSheet->getHighestRow(); // 所有行数

$data = array(); //下面是读取想要获取的列的内容

for ($rowIndex = 2; $rowIndex <= $allRow; $rowIndex++)
{
$data[] = array(
'name' => $currentSheet->getCell('A'.$rowIndex)->getValue(),
'brand' => $currentSheet->getCell('B'.$rowIndex)->getValue(),
'goods_code' => $currentSheet->getCell('C'.$rowIndex)->getValue(),
'credit_code' => $currentSheet->getCell('D'.$rowIndex)->getValue(),
'f_code' => $currentSheet->getCell('E'.$rowIndex)->getValue(),
'c_code' => $currentSheet->getCell('F'.$rowIndex)->getValue(),
'adapt_mod' => $currentSheet->getCell('G'.$rowIndex)->getValue(),
'oe_code' => $currentSheet->getCell('H'.$rowIndex)->getValue(),
'img_code' => $currentSheet->getCell('I'.$rowIndex)->getValue(),
'acc_info' => $currentSheet->getCell('J'.$rowIndex)->getValue(),
'user_id' => $_SESSION['session_id'],
'audit' => 0,
);
}
//执行数据库操作
$dbObj = new DB();
foreach($data as $row){
$oe_code = $row["oe_code"];
$oe_code = $dbObj->get_one("select 'oe_code' from tb_goods where oe_code = '$oe_code'");
if(!empty($oe_code)){
echo "<script>
alert('商品重复请重新上传');
location.href = 'backend_product.php';
</script>";
break;
}else{
$re = $dbObj -> insert("tb_goods",$row);
if($re){
echo "<script>alert('编辑成功');location.href='backend_product.php';</script>";
}
}
}

2.phpexcel把excel表格数据修改,保存新的表格
需求:修改当前excel表格的表头 ,表文件名换成新品牌的名字,sheet换成品牌
PHPexcel笔记
源表头字段
id brand series car_name manufacturer model_year level engine case specifications structure max_speed integrated_fuel wheelbase number_doors number_seats fuel_volume fuel_volume inlet drive car_body parking_brake_type tyre_spec tire_spec
PHPexcel笔记
替换后的表头字段
id 品牌 车系 车型名称 厂商 年款 级别 发动机 变速箱 长高(mm) 车身结构 最高车速(km/h) 工信部综合油耗(L/100km) 轴距(mm) 车门数(个) 座位数(个) 油箱容积(L) 发动机型号 进气形式 驱动方式 车体结构 驻车制动类型 前轮胎规格 后轮胎规格
PHPexcel笔记
就是把因为除了id之外其它的换成汉字
sheet里的内容换成对应的品牌:
修改后的样子:
PHPexcel笔记
具体实现代码如下:
<?php
/**

  • Created by PhpStorm.
  • User: a-4
  • Date: 2017/12/19
  • Time: 15:04
    */
    require_once './PHPExcel/PHPExcel.php';
    require_once './PHPExcel/PHPExcel/IOFactory.php';
    //$PHPExcel = new PHPExcel();
    $PHPReader = new PHPExcel_Reader_Excel2007();
    $fileExtArr = explode(".",$_FILES['excelPacket']['name']);
    $fileExt = ".".$fileExtArr[1];
    $path=$_SERVER['DOCUMENT_ROOT'].'/excelupload/'.$_FILES['excelPacket']['name'];
    move_uploaded_file($_FILES['excelPacket']['tmp_name'],$path);//函数将上传的文件移动到新位置
    $PHPExcel = $PHPReader->load($path); //读取文件
    $file_one =$PHPExcel->getSheet(0); //读取第一个工作簿
    $highestRow =$file_one->getHighestRow();// 取得总行数
    $highestColumm = $file_one->getHighestColumn(); // 取得总列数
    $dataset=array();
    $objWriter = new PHPExcel_Writer_Excel2007($PHPExcel);//写入excel类
    //print_r($objWriter);exit;
    for ($i=1;$i<=$highestRow;$i++){
    $dataset[] = array(
    'id' => $file_one->getCell('A'.$i)->getValue(),
    'brand' => $file_one->getCell('B'.$i)->getValue(),
    'series' => $file_one->getCell('C'.$i)->getValue(),
    'car_name' => $file_one->getCell('D'.$i)->getValue(),
    'manufacturer' => $file_one->getCell('E'.$i)->getValue(),
    'model_year' => $file_one->getCell('F'.$i)->getValue(),
    'level' => $file_one->getCell('G'.$i)->getValue(),
    'engine' => $file_one->getCell('H'.$i)->getValue(),
    'case' => $file_one->getCell('I'.$i)->getValue(),
    'specifications' => $file_one->getCell('J'.$i)->getValue(),
    'structure' => $file_one->getCell('K'.$i)->getValue(),
    'max_speed' => $file_one->getCell('L'.$i)->getValue(),
    'integrated_fuel' => $file_one->getCell('M'.$i)->getValue(),
    'wheelbase' => $file_one->getCell('N'.$i)->getValue(),
    'number_doors' => $file_one->getCell('O'.$i)->getValue(),
    'number_seats' => $file_one->getCell('P'.$i)->getValue(),
    'fuel_volume' => $file_one->getCell('Q'.$i)->getValue(),
    'engine_type' => $file_one->getCell('R'.$i)->getValue(),
    'inlet' => $file_one->getCell('S'.$i)->getValue(),
    'drive' => $file_one->getCell('T'.$i)->getValue(),
    'car_body' => $file_one->getCell('U'.$i)->getValue(),
    'parking_brake_type' => $file_one->getCell('V'.$i)->getValue(),
    'tyre_spec' => $file_one->getCell('W'.$i)->getValue(),
    'tire_spec' => $file_one->getCell('X'.$i)->getValue(),
    );

}
foreach ($dataset as $value){
$bdname = $value['brand'];
}
//print_r($bdname);exit;
$PHPExcel->getActiveSheet()->setTitle("$bdname");
$PHPExcel->setActiveSheetIndex(0);
$file_one->setCellValue('A1', 'id')
->setCellValue('B1', '品牌')
->setCellValue('C1', '车系')
->setCellValue('D1', '车型名称')
->setCellValue('E1', '厂商')
->setCellValue('F1', '年款')
->setCellValue('G1', '级别')
->setCellValue('H1', '发动机')
->setCellValue('I1', '变速箱')
->setCellValue('J1', '长高(mm)')
->setCellValue('K1', '车身结构')
->setCellValue('L1', '最高车速(km/h)')
->setCellValue('M1', '工信部综合油耗(L/100km)')
->setCellValue('N1', '轴距(mm)')
->setCellValue('O1', '车门数(个)')
->setCellValue('P1', '座位数(个)')
->setCellValue('Q1', '油箱容积(L)')
->setCellValue('R1', '发动机型号')
->setCellValue('S1', '进气形式')
->setCellValue('T1', '驱动方式')
->setCellValue('U1', '车体结构')
->setCellValue('V1', '驻车制动类型')
->setCellValue('W1', '前轮胎规格')
->setCellValue('X1', '后轮胎规格');
$path =iconv("utf-8","gb2312",$bdname.$fileExt);//因为win是支持excelgbk的索引要转换一下编码格式
$objWriter->save("../excelupload/$path");

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI