thinkphp phpexcel export returns garbled

Today made a excel file export function but no matter how to change how Internet search for answers to what buffer ah charset = UTF-8'a not take effect

<?php
namespace app\admin\controller;
use cmf\controller\AdminBaseController;
use think\Db;
use think\Loader;
class DownController extends AdminBaseController
{


/ **
* database export data to excel file
* /
function downLoadExcle ($ List)
{
// $ User Query :: = Db ( "SELECT * from User");
Loader :: Import ( 'PHPExcel.PHPExcel');
Import :: Loader ( 'PHPExcel.PHPExcel.IOFactory.PHPExcel_IOFactory');
Loader :: Import ( 'PHPExcel.PHPExcel.Reader.Excel2007');
$ = objPHPExcel new new \ PHPExcel ();
$ = ARR of json_decode (INPUT ( 'ARR '));
the title of each column is disposed //
$ objPHPExcel-> setActiveSheetIndex (0)
-> setCellValue (' A1 ',' ID ')
-> setCellValue (' Bl ',' model ')
-> setCellValue (' a C1 ' , "outside the box")
-> setCellValue ( 'Dl', 'cassette')
-> setCellValue ( 'E1', 'Sn')
-> setCellValue ( 'Fl', 'back yards')
-> setCellValue ( 'Gl', 'taste')
-> setCellValue ( 'H1', ' set')
-> setCellValue ( 'I1', 'corresponding to the number Delivery')
-> setCellValue ( 'Jl', 'leaving time')
-> setCellValue ( 'Kl', 'Remarks');
// data access key here is
the foreach (List $ $ K AS => $ V) {
$ $ NUM = K + 2;
$ objPHPExcel-> setActiveSheetIndex (0)
-> setCellValue ( 'A' . $ NUM, $ V [ 'ID'])
-> setCellValue ( 'B' $ NUM, $ V [ 'name']).
-.> setCellValue ( 'C' $ NUM, $ V [ 'p_bar_code'])
-> setCellValue ( 'D' $ NUM, $ V [ 'z_bar_code'].)
-> setCellValue ( 'E' $ NUM, $ V [ 'u_bar_code'].)
-> setCellValue ( 'F.' $ NUM, $. V [ 'Back'])
-> setCellValue ( 'G' $ NUM,.$v['flavor'])
->setCellValue('H' . $num, $v['suit'])
->setCellValue('I' . $num, $v['order_code'])
->setCellValue('J' . $num, $v['create_time'])
->setCellValue('K' . $num, $v['content']);
}
ob_end_clean();
$title = '我的文档';
$objPHPExcel->getActiveSheet()->setTitle($title);
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true);
$timestamp = time();
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
header('Content-Disposition: attachment;filename="links_out'.$timestamp.'.xls"');
header("Content-Transfer-Encoding:binary");
// header('Content-Type: application/vnd.ms-excel;charset=UTF-8');
// header('Content-Disposition: attachment;filename="订单汇总表(' . date('Ymd-His') . ').xlsx"');
// header('Cache-Control: max-age=0');
Loader::import('PHPExcel.PHPExcel.Reader.Excel5');
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
}

/ **
* @param $ filepathname
* excel file into the database
* character set conversion using iconv prevent distortion Chinese file name
* /
function uploadExcel ($ filepathname)
{
$ $ = file_path filepathname;
$ file_path = iconv ( 'UTF- . 8 ',' GBK ', $ file_path);
Loader :: Import (' PHPExcel.PHPExcel.Reader.Excel2007 ');
Loader :: Import (' PHPExcel.PHPExcel.Reader.Excel5 ');
$ = PHPReader new new \ PHPExcel_Reader_Excel2007 ( );
IF) {($ PHPReader-> canRead ($ file_path!)
$ = PHPReader new new \ PHPExcel_Reader_Excel5 ();
IF ($ PHPReader-> canRead ($ file_path!)) {
return;
}
}
$ = $ PHPReader- objPHPExcel> Load ($ file_path, encode $ = 'UTF-. 8');
$ = $ objPHPExcel- Sheet> getSheet (0);
$highestRow = $sheet->getHighestRow();//获取总行数
for ($i = 2; $i <= $highestRow; $i++) {
$data['name'] = $objPHPExcel->getActiveSheet()->getCell("B" . $i)->getValue();
$data['p_bar_code'] = $objPHPExcel->getActiveSheet()->getCell("C" . $i)->getValue();
$data['z_bar_code'] = $objPHPExcel->getActiveSheet()->getCell("D" . $i)->getValue();
$data['u_bar_code'] = $objPHPExcel->getActiveSheet()->getCell("E" . $i)->getValue();
$data['back'] = $objPHPExcel->getActiveSheet()->getCell("F" . $i)->getValue();
$data['flavor'] = $objPHPExcel->getActiveSheet()->getCell("G" . $i)->getValue();
$data['suit'] = $objPHPExcel->getActiveSheet()->getCell("H" . $i)->getValue();
$data['order_code'] = $objPHPExcel->getActiveSheet()->getCell("I" . $i)->getValue();
$data['create_time'] = $objPHPExcel->getActiveSheet()->getCell("J" . $i)->getValue();
$data['content'] = $objPHPExcel->getActiveSheet()->getCell("K" . $i)->getValue();
$allData[] = $data;
if($data['name']==''){
break;
}
}
return $allData;

}

/ **
* Upload File
* /
function the uploadFile (File $)
{
// Get form to upload files uploaded e.g. 001.jpg
// File $ = Request () -> File ( 'Avatar');
// mobile applications to the frame root directory / public / uploads / directory
$ info = $ file-> validate ( [ 'ext' => 'xlsx, xls, cvs']) -> move (.. rOOT_PATH 'public' DS 'uploads'.);
IF ($ info) {
// echo $ info-> GetPathName (); Get file path
// file written to the database
$ Send = $ this-> uploadExcel ($ info-> GetPathName ());
return $ Send;
} {the else
// get error message failed to upload
echo $ File-> the getError ();
}

}
}

 

When the code is not necessarily wrong to look at your request if the request is then your ajax request to have returned so will the value of garbled

The request will be replaced by an ordinary request normal download files absolutely effective touched my own conscience say

 

Guess you like

Origin www.cnblogs.com/phpclass/p/11264286.html