php excel上传后乱码,完美解决phpexcel导出到xls文件出现乱码的问题

解决方法如下所示:

include "global.php";

$ids = $_GET["ids"];

$sql = "select * from crm_cost_end where id in ( {$ids} )";

$result = $db->findAll($sql);

//echo $result[1]["sn"];

//创建一个excel对象

$objPHPExcel = new PHPExcel();

// Set properties

$objPHPExcel->getProperties()->setCreator("ctos")

->setLastModifiedBy("ctos")

->setTitle("Office 2007 XLSX Test Document")

->setSubject("Office 2007 XLSX Test Document")

->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")

->setKeywords("office 2007 openxml php")

->setCategory("Test result file");

//set width

$objPHPExcel->getActiveSheet()->getColumnDimension("A")->setWidth(8);

$objPHPExcel->getActiveSheet()->getColumnDimension("B")->setWidth(10);

$objPHPExcel->getActiveSheet()->getColumnDimension("C")->setWidth(25);

$objPHPExcel->getActiveSheet()->getColumnDimension("D")->setWidth(12);

$objPHPExcel->getActiveSheet()->getColumnDimension("E")->setWidth(50);

$objPHPExcel->getActiveSheet()->getColumnDimension("F")->setWidth(10);

$objPHPExcel->getActiveSheet()->getColumnDimension("G")->setWidth(12);

$objPHPExcel->getActiveSheet()->getColumnDimension("H")->setWidth(12);

$objPHPExcel->getActiveSheet()->getColumnDimension("I")->setWidth(12);

$objPHPExcel->getActiveSheet()->getColumnDimension("J")->setWidth(30);

//设置行高度

$objPHPExcel->getActiveSheet()->getRowDimension("1")->setRowHeight(22);

$objPHPExcel->getActiveSheet()->getRowDimension("2")->setRowHeight(20);

//set font size bold

$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10);

$objPHPExcel->getActiveSheet()->getStyle("A2:J2")->getFont()->setBold(true);

$objPHPExcel->getActiveSheet()->getStyle("A2:J2")->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle("A2:J2")->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

//设置水平居中

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

$objPHPExcel->getActiveSheet()->getStyle("A")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle("B")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle("D")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle("F")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle("G")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle("H")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle("I")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

//

$objPHPExcel->getActiveSheet()->mergeCells("A1:J1");

// set table header content

$objPHPExcel->setActiveSheetIndex(0)

->setCellValue("A1", "订单数据汇总 时间:" . date("Y-m-d H:i:s"))

->setCellValue("A2", "订单ID")

->setCellValue("B2", "下单人")

->setCellValue("C2", "客户名称")

->setCellValue("D2", "下单时间")

->setCellValue("E2", "需求机型")

->setCellValue("F2", "需求数量")

->setCellValue("G2", "需求交期")

->setCellValue("H2", "确认BOM料号")

->setCellValue("I2", "PMC确认交期")

->setCellValue("J2", "PMC交货备注");

// Miscellaneous glyphs, UTF-8

for ($i = 0; $i < count($result) - 1; $i++) {

$objPHPExcel->getActiveSheet(0)->setCellValue("A" . ($i + 3), $result[$i]["id"]);

$objPHPExcel->getActiveSheet(0)->setCellValue("B" . ($i + 3), $result[$i]["realname"]);

$objPHPExcel->getActiveSheet(0)->setCellValue("C" . ($i + 3), $result[$i]["customer_name"]);

$objPHPExcel->getActiveSheet(0)->setCellValue("D" . ($i + 3), $OrdersData[$i]["create_time"]);

$objPHPExcel->getActiveSheet(0)->setCellValue("E" . ($i + 3), $result[$i]["require_product"]);

$objPHPExcel->getActiveSheet(0)->setCellValue("F" . ($i + 3), $result[$i]["require_count"]);

$objPHPExcel->getActiveSheet(0)->setCellValue("G" . ($i + 3), $result[$i]["require_time"]);

$objPHPExcel->getActiveSheet(0)->setCellValue("H" . ($i + 3), $result[$i]["product_bom_encoding"]);

$objPHPExcel->getActiveSheet(0)->setCellValue("I" . ($i + 3), $result[$i]["delivery_time"]);

$objPHPExcel->getActiveSheet(0)->setCellValue("J" . ($i + 3), $result[$i]["delivery_memo"]);

$objPHPExcel->getActiveSheet()->getStyle("A" . ($i + 3) . ":J" . ($i + 3))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle("A" . ($i + 3) . ":J" . ($i + 3))->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

$objPHPExcel->getActiveSheet()->getRowDimension($i + 3)->setRowHeight(16);

}

// Rename sheet

$objPHPExcel->getActiveSheet()->setTitle("订单汇总表");

// Set active sheet index to the first sheet, so Excel opens this as the first sheet

$objPHPExcel->setActiveSheetIndex(0);

// Redirect output to a client"s web browser (Excel5)

ob_end_clean();//清除缓冲区,避免乱码

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

header("Content-Disposition: attachment;filename="订单汇总表(" . date("Ymd-His") . ").xls"");

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

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel5");

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

?>

在header() 前面加上ob_end_clean() 函数,清除缓冲区, 这样就不会乱码了!

以上就是小编为大家带来的完美解决phpexcel导出到xls文件出现乱码的问题全部内容了,希望大家多多支持网页设计~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值