加入收藏 | 设为首页 | 会员中心 | 我要投稿 鹰潭站长网 (https://www.0701zz.com/)- 智能边缘、云手机、专属主机、数据工坊、负载均衡!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php如何将csv转变成xls

发布时间:2023-05-23 15:34:38 所属栏目:PHP教程 来源:互联网
导读:   这篇文章主要介绍“php如何将csv转换成xls”,在日常操作中,相信很多人在php如何将csv转换成xls问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
  这篇文章主要介绍“php如何将csv转换成xls”,在日常操作中,相信很多人在php如何将csv转换成xls问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php如何将csv转换成xls”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
 
  读取CSV文件
 
  PHP提供了fgetcsv()函数用于读取CSV文件,并将每一行解析成一个数组。以下是一个读取CSV文件的例子:
 
  $csvFile = 'data.csv';
 
  if(!file_exists($csvFile)) {
 
      die("File not found");
 
  }
 
  $fp = fopen($csvFile, 'r');
 
  if(!$fp) {
 
      die("Error opening file");
 
  }
 
  $data = array();
 
  while($row = fgetcsv($fp)) {
 
      $data[] = $row;
 
  }
 
  fclose($fp);
 
  这段代码首先检查CSV文件是否存在,然后打开文件,并使用fgetcsv()函数读取文件的每一行,将结果存放到一个数组中。
 
  创建Excel文件
 
  PHPExcel是一个非常强大的PHP扩展,用于创建和操作Excel文件。我们可以下载PHPExcel并将其包含到PHP项目中。创建一个空的Excel文件的方法如下:
 
  require_once 'PHPExcel.php';
 
  $objPHPExcel = new PHPExcel();
 
  $objPHPExcel->getActiveSheet()->setTitle('Sheet1');
 
  这段代码使用PHPExcel创建了一个空的Excel文件,并设置了一个默认的工作表。
 
  将CSV数据导入到Excel文件中
 
  使用PHPExcel中的setCellValue()方法,我们可以将CSV文件中的数据导入到Excel文件中。以下是示例代码:
 
  require_once 'PHPExcel.php';
 
  $csvFile = 'data.csv';
 
  if(!file_exists($csvFile)) {
 
      die("File not found");
 
  }
 
  $csvData = file_get_contents($csvFile);
 
  $data = array_map("str_getcsv", preg_split('/\r*\n+|\r+/', $csvData));
 
  $objPHPExcel = new PHPExcel();
 
  $objPHPExcel->getActiveSheet()->setTitle('Sheet1');
 
  $row = 1;
 
  foreach($data as $fields) {
 
      $col = 0;
 
      foreach($fields as $value) {
 
          $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
 
          $col++;
 
      }
 
      $row++;
 
  }
 
  这段代码首先使用file_get_contents()函数读取CSV文件的内容,然后使用preg_split()函数将文件内容分割成一个二维数组。接下来,我们使用PHPExcel的setCellValueByColumnAndRow()函数将数据导入到Excel文件中。
 
  保存Excel文件
 
  最后,我们使用PHPExcel的save()方法将文件保存为XLS或XLSX格式。以下是完整的示例代码:
 
  require_once 'PHPExcel.php';
 
  $csvFile = 'data.csv';
 
  if(!file_exists($csvFile)) {
 
      die("File not found");
 
  }
 
  $csvData = file_get_contents($csvFile);
 
  $data = array_map("str_getcsv", preg_split('/\r*\n+|\r+/', $csvData));
 
  $objPHPExcel = new PHPExcel();
 
  $objPHPExcel->getActiveSheet()->setTitle('Sheet1');
 
  $row = 1;
 
  foreach($data as $fields) {
 
      $col = 0;
 
      foreach($fields as $value) {
 
          $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
 
          $col++;
 
      }
 
      $row++;
 
  }
 
  $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
 
  $objWriter->save('data.xls');
 
  这段代码将数据导入到PHPExcel对象中,并使用PHPExcel_IOFactory的createWriter()方法生成一个Excel5Writer对象,用于将PHPExcel对象保存为XLS格式的文件。需要注意的是,为了使用Excel2007格式(XLSX),你需要将Excel5改为Excel2007。
 

(编辑:鹰潭站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章