PHPEXCEL 使用小记_php教程-查字典教程网
PHPEXCEL 使用小记
PHPEXCEL 使用小记
发布时间:2016-12-29 来源:查字典编辑
摘要:首先是使用PHPReader读取Excle内容:复制代码代码如下:require("http://www.jb51.net/PHPExcel...

首先是使用PHP Reader 读取Excle内容:

复制代码 代码如下:

require("http://www.jb51.net/PHPExcel/Classes/PHPExcel.php");

$file = "D:datas.xlsx";

if(!file_exists($file)){

die("no file found in {$file}");

}

$datasReader = PHPExcel_IOFactory::load($file);

$sheets = $datasReader->getAllSheets();

//如果有多个工作簿

$countSheets = count($sheets);

$sheetsinfo = array();

$sheetData = array();

if($countSheets==1){

$sheet = $sheets[0];

$sheetsinfo["rows"] = $sheet->getHighestRow();

$sheetsinfo["column"] = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn());

for($row=1;$row<=$sheetsinfo["rows"];$row++){

for($column=0;$column<$sheetsinfo["column"];$column++){

$sheetData[$column][$row] = $sheet->getCellByColumnAndRow($column, $row)->getValue();

}

}

}else{

foreach ($sheets as $key => $sheet)

{

$sheetsinfo[$key]["rows"] = $sheet->getHighestRow();

$sheetsinfo[$key]["column"] = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn());

for($row=1;$row<=$sheetsinfo[$key]["rows"];$row++){

for($column=0;$column<$sheetsinfo[$key]["column"];$column++){

$sheetData[$key][$column][$row] = $sheet->getCellByColumnAndRow($column, $row)->getValue();

}

}

}

}

echo "<pre>";

print_r($sheetData);

echo "</pre>";

注:使用PHP 读取excel文件内容,一般都是处理整理好格式的csv或者excel,也可以读取xml文件

PHPExcel生成Exceel

复制代码 代码如下:

$sql = sprintf("select * from table where op_id=%d", intval($this->params['id']));

$query = $this->_db->query($sql);

require_once './PHPExcel_1.7.4/Classes/PHPExcel.php';

$objPHPExcel = new PHPExcel();

$objPHPExcel->setActiveSheetIndex(0);

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);

$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);

$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);

$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);

$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);

$objPHPExcel->getActiveSheet()->setCellValue('A1', "{$this->_packInfos['o_id']}");

$objPHPExcel->getActiveSheet()->setCellValue('B1', "Volume weight (kg)");

$objPHPExcel->getActiveSheet()->setCellValue('D1', "Actual weight (kg)");

$objPHPExcel->getActiveSheet()->setCellValue('A2', "Box No.");

$objPHPExcel->getActiveSheet()->setCellValue('B2', "Products");

$objPHPExcel->getActiveSheet()->setCellValue('C2', "Shipping Box");

$objPHPExcel->getActiveSheet()->setCellValue('D2', "System");

$objPHPExcel->getActiveSheet()->setCellValue('E2', "Input");

$objActSheet = $objPHPExcel->getActiveSheet();

$objActSheet->mergeCells("B1:C1");

$objActSheet->mergeCells("D1:E1");

$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);

$objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('A2'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);

$objPHPExcel->getActiveSheet()->getStyle('B2'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('C2'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('D2'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('E2'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

if($this->_db->num_rows($query)>0)

{

$i=3;

while ($row = $this->_db->fetch_assoc($query))

{

$objPHPExcel->getActiveSheet()->setCellValue('A'.($i),"BOX ".$row['box_num']);

$objPHPExcel->getActiveSheet()->setCellValue('B'.($i),sprintf("%.2f",$row['volume_weight']));

$objPHPExcel->getActiveSheet()->setCellValue('C'.($i),sprintf("%.2f",$row['box_weight']));

$objPHPExcel->getActiveSheet()->setCellValue('D'.($i),sprintf("%.2f",$row['system_weight']));

$objPHPExcel->getActiveSheet()->setCellValue('E'.($i),sprintf("%.2f",$row['real_weight']));

$objPHPExcel->getActiveSheet()->getStyle('A'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);

$objPHPExcel->getActiveSheet()->getStyle('B'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

$objPHPExcel->getActiveSheet()->getStyle('C'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

$objPHPExcel->getActiveSheet()->getStyle('D'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

$objPHPExcel->getActiveSheet()->getStyle('E'.($i))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

$i++;

}

}

$fileName="exportBox.xls";

$filePath = dirname(dirname("__FILE__"))."/template/".$fileName;

$path = "./template/".$fileName;

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);

if(file_exists($path)){

chmod($path, 0777);

unlink($path);

$objWriter->save($path);

header('application/vnd.ms-excel');

header('Content-Disposition: attachment;filename=weight-'.$this->_packInfos["o_id"].".xlsx");

readfile($filePath);

die();

}

else

{

$objWriter->save($path);

header('application/vnd.ms-excel');

header('Content-Disposition: attachment;filename=weight-'.$this->_packInfos["o_id"].".xlsx");

readfile($filePath);

die();

}

注:上面的php生成excel的方式是直接使用A标签形式的,如果使用ajax,可以不使用header,直接echo $path,前台window.location.href=返回来的path就可以了。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新php教程学习
    热门php教程学习
    编程开发子分类