php中使用PHPExcel读写excel(xls)文件的方法

(编辑:jimmy 日期: 2025/7/1 浏览:2)

本文实例讲述了PHP中使用PHPExcel读写excel(xls)文件的方法,非常实用。分享给大家供大家参考之用。具体方法如下:

很多PHP类库在读取中文的xls、csv文件时会有问题,网上找了下资料,发现PHPExcel类库好用,官网地址为:http://phpexcel.codeplex.com/。现将PHPExcel读写Excel的方法分别叙述如下:

1、读取xls文件内容

<"云舒")
               // ->setLastModifiedBy("云舒")
               // ->setTitle("产品URL导出")
               // ->setSubject("产品URL导出")
               // ->setDescription("产品URL导出")
               // ->setKeywords("产品URL导出");
    $objPHPExcel->setActiveSheetIndex(0);
    
    $cols = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    //设置www.jb51.net标题
    for($i=0,$length=count($title); $i<$length; $i++) {
      //echo $cols{$i}.'1';
      $objPHPExcel->getActiveSheet()->setCellValue($cols{$i}.'1', $title[$i]);
    }
    //设置标题样式
    $titleCount = count($title);
    $r = $cols{0}.'1';
    $c = $cols{$titleCount}.'1';
    $objPHPExcel->getActiveSheet()->getStyle("$r:$c")->applyFromArray(
      array(
        'font'  => array(
          'bold'   => true
        ),
        'alignment' => array(
          'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT,
        ),
        'borders' => array(
          'top'   => array(
            'style' => PHPExcel_Style_Border::BORDER_THIN
          )
        ),
        'fill' => array(
          'type'    => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR,
          'rotation'  => 90,
          'startcolor' => array(
            'argb' => 'FFA0A0A0'
          ),
          'endcolor'  => array(
            'argb' => 'FFFFFFFF'
          )
        )
      )
    );
    
    $i = 0;
    foreach($data as $d) { //这里用foreach,支持关联数组和数字索引数组
      $j = 0;
      foreach($d as $v) {  //这里用foreach,支持关联数组和数字索引数组
        $objPHPExcel->getActiveSheet()->setCellValue($cols{$j}.($i+2), $v);
        $j++;
      }
       $i++;
    }
    // 生成2003excel格式的xls文件
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="'.$filename.'.xls"');
    header('Cache-Control: max-age=0');

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');
  }
  $array = array(
    array(1111,'名称','品牌','商品名','https://www.jb51.net'),
    array(1111,'名称','品牌','商品名','https://www.jb51.net'),
    array(1111,'名称','品牌','商品名','https://www.jb51.net'),
    array(1111,'名称','品牌','商品名','https://www.jb51.net'),
    array(1111,'名称','品牌','商品名','https://www.jb51.net'),
  );
  write_xls($array,array('商品id','供应商名称','品牌','商品名','URL'),'report');
  
"htmlcode">
<"连接失败,错误码:".mysqli_connect_errno()."错误信息:".mysqli_connect_error());
    }
    //设置连接数据库的编码,不要忘了设置
    $mysqli->set_charset("gbk");
    //中文字符的编码要与数据库一致,若没设置,结果为null
    $name = iconv("utf-8", "gbk//IGNORE", $name);
    if($mysqli_stmt = $mysqli->prepare("select id from 137_product where name like ")) {
      $mysqli_stmt->bind_param("s", $name);
      $mysqli_stmt->execute();
      $mysqli_stmt->bind_result($id);
      $mysqli_stmt->fetch();
      $mysqli_stmt->close();
    }
    $mysqli->close(); 
    return $id;  //得到的是gbk码(同数据库编码)
  }  
  $id = getProductIdByName('%伊奈卫浴伊奈分体座便器%');
  var_dump($id);
?>

希望本文所述对大家的PHP程序设计有所帮助

一句话新闻

一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?