麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > 建站經驗 > 正文

解決ecshop加入PHPExcel導入變成亂碼

2024-04-25 20:37:47
字體:
來源:轉載
供稿:網友

經過83次實踐,發現代碼的中間空了幾行:就是ecshop生成代碼結束 ?> 與新代碼<?php 開始之間有空隙。汗,因為這個小問題折騰了最模板近一個小時。后來在網上找到相似的解決方案,現一并貼出來。

在PHP代碼的最前面加入:ob_start();在excel要生成的前面加上:ob_end_clean();這樣就可以解決亂碼的問題了。 <?php

define('IN_ECS', true);

require(dirname(__FILE__) . '/includes/init.php');

require_once(ROOT_PATH . 'includes/lib_order.php');

/* 權限判斷 */

admin_priv('xxx_order_stats');

$sql = 'select goods_id, goods_sn, goods_name, market_price, shop_price, promote_price, is_on_sale from goods where is_delete=0 order by goods_id desc';

$data_list = $db->getAll($sql);

/*------------------------------------------------------ */

//-- 下載EXCEL報表

/*------------------------------------------------------ */

/* 文件名 */

$filename = '商品表'.date("Y-m-d",time());

header("Content-type: application/vnd.ms-excel; charset=utf-8");

header("Content-Disposition: attachment; filename=$filename.xls");

/* 文件標題 */

//echo ecs_iconv(EC_CHARSET, 'GB2312', $filename ) . "tn";

/* 頭部信息 */

echo ecs_iconv(EC_CHARSET, 'GB2312', '商品ID') ."t";

echo ecs_iconv(EC_CHARSET, 'GB2312', '商品名稱') ."t";

echo ecs_iconv(EC_CHARSET, 'GB2312', '貨號') ."t";

echo ecs_iconv(EC_CHARSET, 'GB2312', '市場價') ."t";

echo ecs_iconv(EC_CHARSET, 'GB2312', '本店價') ."t";

echo ecs_iconv(EC_CHARSET, 'GB2312', '促銷價') ."t";

echo ecs_iconv(EC_CHARSET, 'GB2312', '上/下架') ."t";

echo "n";

foreach ($data_list AS $data)

{

echo ecs_iconv(EC_CHARSET, 'GB2312', $data['goods_id']) . "t";

echo ecs_iconv(EC_CHARSET, 'GB2312', $data['goods_name']) . "t";

echo ecs_iconv(EC_CHARSET, 'GB2312', strval($data['goods_sn'])) . "t";

echo ecs_iconv(EC_CHARSET, 'GB2312', $data['market_price']) . "t";

echo ecs_iconv(EC_CHARSET, 'GB2312', $data['shop_price']) . "t";

echo ecs_iconv(EC_CHARSET, 'GB2312', (intval($data['promote_price']) == 0 ? '' : $data['promote_price'])) . "t";

echo ecs_iconv(EC_CHARSET, 'GB2312', ($data['is_on_sale'] == 1 ? '上架' : '')) . "t";

echo "n";

}

//以上這段代碼生成Excel正常,不會出現問題,但在打開時會提示不兼容的問題。對于那些領導或者外行人士用,會感覺這個文檔有問題,于是最模板找到PHPExcel來正常生成excel。

?>

<?php

header('Content-type:text/html;charset=utf-8');

require_once ROOT_PATH . '/Classes/PHPExcel.php';

require_once ROOT_PATH . '/Classes/PHPExcel/Writer/Excel2007.php';

require_once ROOT_PATH . '/Classes/PHPExcel/Writer/Excel5.php';

include_once ROOT_PATH . '/Classes/PHPExcel/IOFactory.php';

$objExcel = new PHPExcel();

//設置屬性 (這段代碼無關緊要,其中的內容可以替換為你需要的)

//$objExcel->getProperties()->setCreator("andy");

//$objExcel->getProperties()->setLastModifiedBy("andy");

//$objExcel->getProperties()->setTitle("Office 2003 XLS Test Document");

//$objExcel->getProperties()->setSubject("Office 2003 XLS Test Document");

//$objExcel->getProperties()->setDescription("Test document for Office 2003 XLS, generated using PHP classes.");

//$objExcel->getProperties()->setKeywords("office 2003 openxml php");

//$objExcel->getProperties()->setCategory("Test result file");

//$objExcel->setActiveSheetIndex(0);

$i=0;

//表頭

$k1="商品ID";

$k2="商品名稱";

$k3="貨號";

$k4="市場價";

$k5="本店價";

$k6="促銷價";

$k7="上/下架";

$objExcel->getActiveSheet()->setCellValue('a1', "$k1")->getStyle('a1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);

$objExcel->getActiveSheet()->setCellValue('b1', "$k2")->getStyle('b1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);

$objExcel->getActiveSheet()->setCellValue('c1', "$k3")->getStyle('c1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);

$objExcel->getActiveSheet()->setCellValue('d1', "$k4")->getStyle('d1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);

$objExcel->getActiveSheet()->setCellValue('e1', "$k5")->getStyle('e1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);

$objExcel->getActiveSheet()->setCellValue('f1', "$k6")->getStyle('f1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);

$objExcel->getActiveSheet()->setCellValue('g1', "$k7")->getStyle('g1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);

foreach($data_list as $k=>$v) {

$u1=$i+2;

/*----------寫入內容-------------*/

$objExcel->getActiveSheet()->setCellValue('a'.$u1, $v["goods_id"]);

$objExcel->getActiveSheet()->setCellValue('b'.$u1, $v["goods_name"]);

$objExcel->getActiveSheet()->setCellValue('c'.$u1, "'".strval($v['goods_sn']));

$objExcel->getActiveSheet()->setCellValue('d'.$u1, $v["market_price"]);

$objExcel->getActiveSheet()->setCellValue('e'.$u1, $v["shop_price"]);

$objExcel->getActiveSheet()->setCellValue('f'.$u1, (intval($v['promote_price']) == 0 ? '' : $v['promote_price']));

$objExcel->getActiveSheet()->setCellValue('g'.$u1, ($v['is_on_sale'] == 1 ? '上架' : ''));

$i++;

}

// 高置列的寬度

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

$objExcel->getActiveSheet()->getColumnDimension('B')->setWidth(80);

$objExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);

$objExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10);

$objExcel->getActiveSheet()->getColumnDimension('E')->setWidth(10);

$objExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10);

$objExcel->getActiveSheet()->getColumnDimension('G')->setWidth(10);

$objExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BPersonal cash register&RPrinted on &D');

$objExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objExcel->getProperties()->getTitle() . '&RPage &P of &N');

// 設置頁方向和規模

$objExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);

$objExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);

$objExcel->setActiveSheetIndex(0);

ob_end_clean();

$ex = 'xxx';

if($ex == '2007') { //導出excel2007文檔

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');

header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');

$objWriter->save('php://output');

exit;

} else { //導出excel2003文檔

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

header('Content-Disposition: attachment;filename="'.$filename.'.xls"');

header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel5');

$objWriter->save('php://output');

exit;

}

?>

注釋掉ecshop的生成代碼后,PHPExcel生成的excel卻變成了亂碼,重新把PHPExcel單獨拿出來又正常。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产亚洲精品久久久久5区 日韩一级片一区二区三区 国产精品久久久久av | 爽爽淫人综合网网站 | 九一免费国产 | 国产一国产一级毛片视频 | h视频免费观看 | 欧美国产一区二区三区 | 一区二区三区日韩在线 | 在线91视频 | 免费观看的毛片手机视频 | av视屏| 亚州欧美视频 | 国产一级毛片不卡 | 久久免费视频精品 | 成人艳情一二三区 | 成年人激情在线 | 亚洲第一综合色 | 欧美日韩一区,二区,三区,久久精品 | 久综合 | 国产精品69久久 | 国产视频在线观看一区二区三区 | 成人在线视频在线观看 | 激情综合网俺也去 | 亚洲欧洲av在线 | 在线看免电影网站 | 少妇一级淫片免费看 | 欧美毛片免费观看 | 91看片在线观看视频 | 亚洲第五色综合网 | 中国字幕av| 黄色片在线观看网站 | 亚洲最大av网站 | 精品一区二区久久久久 | 欧美a视频在线观看 | 天天操天天骑 | 久久精品一二三区 | 国产精品久久久久久久久久久久久久久 | 久操福利视频 | 中文字幕在线观看国产 | 91久久国产露脸精品免费 | 亚洲国产资源 | 久久久久中精品中文字幕19 |