PHPexcel笔记
admin
2023-06-15 04:41:53
0次

首选去下载phpexcel文件包

1.phpexcel把excel表格数据导入mysql‘数据库中规定的表中
前端:





                                
上传文件 

 

注: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 "";
break;
}else{
$re = $dbObj -> insert("tb_goods",$row);
if($re){
echo "";
}
}
}

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笔记
具体实现代码如下:
/**

  • 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");

上一篇:git记住用户名密码

下一篇:git操作问题

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...