English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Solução perfeita para o problema de caracteres estranhos ao exportar para o arquivo xls usando PHPExcel

Solution as follows:

<?php
include 'global.php';
$ids = $_GET['ids'];
$sql = "select * from crm_cost_end where id in ( {$ids} )";
$result = $db->findAll($sql);
//echo $result[1]['sn'];
//Create an excel object
$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')->getColumnDimension('E')8);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->getColumnDimension('E')10);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->getColumnDimension('E')25);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->getColumnDimension('E')12);
$objPHPExcel->getActiveSheet()->setCategory("Arquivo de resultado do teste");->getColumnDimension('E')5>getColumnDimension('H')
$objPHPExcel->getActiveSheet()-definir largura->getColumnDimension('E')10);
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->getColumnDimension('E')12);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->getColumnDimension('E')12);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->getColumnDimension('E')12);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->getColumnDimension('E')3>getColumnDimension('H')
//>getColumnDimension('F') 
$objPHPExcel->getActiveSheet()->getColumnDimension('G')1>getDefaultStyle()->setRowHeight(22);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')2>getDefaultStyle()->setRowHeight(2>getColumnDimension('H')
//>getColumnDimension('I') 
$objPHPExcel->getActiveSheet()->getColumnDimension('J')-definir altura da linha->setWidth(10);
$objPHPExcel->getActiveSheet()-definir tamanho da fonte em negrito2>getStyle('F')2>getDefaultStyle()-definir altura da linha->getRowDimension('
$objPHPExcel->getActiveSheet()-definir tamanho da fonte em negrito2>getStyle('F')2>getDefaultStyle()->getAlignment();->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getActiveSheet()-definir tamanho da fonte em negrito2>getStyle('F')2>getDefaultStyle()->getBorders();->getAllBorders();->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//0); 
$objPHPExcel->getActiveSheet()-definir tamanho da fonte em negrito1>getDefaultStyle()->getAlignment();->setSize(
$objPHPExcel->getActiveSheet()->getFont()->getAlignment();->getStyle('B')
$objPHPExcel->getActiveSheet()->setBold(true);->getAlignment();->getStyle('B')
$objPHPExcel->getActiveSheet()-definir alinhamento horizontal central->getAlignment();->getStyle('B')
$objPHPExcel->getActiveSheet()->getStyle('A->getAlignment();->getStyle('B')
$objPHPExcel->getActiveSheet()-')->getAlignment();->getStyle('B')
$objPHPExcel->getActiveSheet()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);->getAlignment();->getStyle('B')
$objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment();->getStyle('B')
// 
$objPHPExcel->getActiveSheet()->getStyle('D')1>getStyle('F')1);
// >getStyle('G') 
$objPHPExcel->getStyle('H')
    -:J1>getStyle('I')->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);->mergeCells('A
    -:J2definir conteúdo do cabeçalho da tabela
    ->setActiveSheetIndex(0)2', 'Resumo de dados do pedido: ' . date('Y'
    -m2', 'd H:i:s'))
    -', 'ID do pedido')2', 'Pessoa responsável pela encomenda')
    -', 'Nome do cliente')2', 'Data de encomenda')
    -', 'Modelo de demanda')2', 'Quantidade necessária')
    ->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);
}
// Renomear folha 
$objPHPExcel->getActiveSheet()->setTitle('Tabela de Resumo de Pedidos');
// Defina o índice da folha ativa para a primeira folha, para que o Excel a abra como a primeira folha 
$objPHPExcel->setActiveSheetIndex(0);
// Redirecione a saída para o navegador da web do cliente (Excel5) 
<span style="color:#ff0000;">ob_end_clean();//Limpe o buffer, evite caracteres estranhos</span>
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Tabela de Resumo de Pedidos(' . date('Ymd-His
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5);
$objWriter->save('php://output');
?>

Adicione a função ob_end_clean() antes do header(), limpe o buffer, assim não haverá caracteres estranhos!

Isso é tudo que o editor trouxe para você para resolver o problema de caracteres estranhos ao exportar para o arquivo xls do phpexcel, esperamos que você apoie e grite o tutorial!

Você também pode gostar