PHP处理excel文件 包括处理excel数据上传到数据库以及从数据库下载数据到excel

PHP 处理excel中数据 可以使用两种控件 phpexcel 以及php excel-reader  

php excel reader 用法很简单,但是对于处理excel中的空白格  我没有找到合适的方法

所以就用了php excel。


首先导入插件:

       require_once './Excel/PHPExcel.php';

      然后:

首先是处理从数据库中查询出的数据导入到excel文件中

        $objPHPExcel = new PHPExcel();
$num = 0;

//设置中国的时区  无所谓
date_default_timezone_set('Europe/London');
      
         $objPHPExcel->getProperties()->setCreator("转弯的阳光")
                               ->setLastModifiedBy("转弯的阳光")
                               ->setTitle("数据EXCEL导出")
                               ->setSubject("数据EXCEL导出")
                               ->setDescription("备份数据")
                               ->setKeywords("excel")
                              ->setCategory("result file");

               //(0是指多个工作sheet)  设置第一行的内容

$objPHPExcel->setActiveSheetIndex(0)
                         //Excel的第A列,uid是你查出数组的键值,下面以此类推
                          ->setCellValue('A'.'1', '高压')    
                          ->setCellValue('B'.'1', '低压')
                          ->setCellValue('C'.'1', '心率')
  ->setCellValue('D'.'1', '时间');

//设置第二行以后全部数据内容

while($i<$j)
{
//echo 
//echo $str =$str. $arg[$i]['value']."\t\t\t"."\t".$arg2[$i]['value']."\t\t\t".$arg4[$i]['value']."\t\t\t".$arg4[$i]['updated_at']."\t\n";
//echo '</br>';
$objPHPExcel->setActiveSheetIndex(0)
                         //Excel的第A列,uid是你查出数组的键值,下面以此类推
                          ->setCellValue('A'.$i, $arg[$i]['value'])    
                          ->setCellValue('B'.$i, $arg2[$i]['value'])
                          ->setCellValue('C'.$i, $arg4[$i]['value'])
 ->setCellValue('D'.$i, $arg4[$i]['updated_at']);
//$data[$i]['data_id'] = $arg[]."\t".$row[]."\t".$row[]."\n";
$i++;

}

//将上传的excel文件保存为时间戳格式的excel文件

$filename = time().".xls";
$objPHPExcel->getActiveSheet()->setTitle('User');
        $objPHPExcel->setActiveSheetIndex(0);

//必须存在的头文件
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="'.$name.'.xls"');
        header('Cache-Control: max-age=0');
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

//将excel文件存储在指定位置
$objWriter->save('C:\.....\public\downdata\\'.$filename);


网上很多人都是说直接使用$objWriter->save(

'php://output');

不过效果我没有使用过,我是从后台处理好之后直接保存到服务器本地;


然后处理上传的excel文件:


导入头文件是必须的:

  require_once './Excel/PHPExcel.php';
require_once './Excel/PHPExcel/IOFactory.php';

然后处理excel文件的内容:

             $reader = PHPExcel_IOFactory::createReader('Excel5'); //设置以Excel5格式(Excel97-2003工作簿)
    //path肯定是服务器本地地址
$PHPExcel = $reader->load($path); // 载入excel文件
$sheet = $PHPExcel->getSheet(0); // 读取第一個工作表
$highestRow = $sheet->getHighestRow(); // 取得总行数

$highestColumm = $sheet->getHighestColumn(); // 取得总列数

//$highestColumm= PHPExcel_Cell::columnIndexFromString($colsNum); //字母列转换为数字列 如:AA变为27

/** 循环读取每个单元格的数据 */  //我的一共是6列,需要一次读出来,保存到数据库
for ($row = 2; $row <= $highestRow; $row++){//行数是以第1行开始
//for ($column = 'A'; $column <= 7; $column++) {//列数是以A列开始
//$dataset[] = $sheet->getCell(.$row)->getValue();
   $a = $sheet->getCell('A'.$row)->getValue();
$b = $sheet->getCell('B'.$row)->getValue();
$c = $sheet->getCell('C'.$row)->getValue();
$d = $sheet->getCell('D'.$row)->getValue();
$high = $sheet->getCell('E'.$row)->getValue();
$low = $sheet->getCell('F'.$row)->getValue();
$heart = $sheet->getCell('G'.$row)->getValue();

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值