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

Solución perfecta para el problema de los caracteres ilegibles al exportar a archivos xls con PHPExcel

The solution is 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->getHojaActiva()->getColumnDimension('A')->getColumnDimension('E')8);
$objPHPExcel->getHojaActiva()->getColumnDimension('B')->getColumnDimension('E')10);
$objPHPExcel->getHojaActiva()->getColumnDimension('C')->getColumnDimension('E')25);
$objPHPExcel->getHojaActiva()->getColumnDimension('D')->getColumnDimension('E')12);
$objPHPExcel->getHojaActiva()->setCategory("archivo de resultado de prueba");->getColumnDimension('E')5>getColumnDimension('H')
$objPHPExcel->getHojaActiva()-establecer ancho->getColumnDimension('E')10);
$objPHPExcel->getHojaActiva()->getColumnDimension('A')->getColumnDimension('E')12);
$objPHPExcel->getHojaActiva()->getColumnDimension('B')->getColumnDimension('E')12);
$objPHPExcel->getHojaActiva()->getColumnDimension('C')->getColumnDimension('E')12);
$objPHPExcel->getHojaActiva()->getColumnDimension('D')->getColumnDimension('E')3>getColumnDimension('H')
//>getColumnDimension('F') 
$objPHPExcel->getHojaActiva()->getColumnDimension('G')1>getDefaultStyle()->establecerAlturaFila(22);
$objPHPExcel->getHojaActiva()->getColumnDimension('G')2>getDefaultStyle()->establecerAlturaFila(2>getColumnDimension('H')
//>getColumnDimension('I') 
$objPHPExcel->getHojaActiva()->getColumnDimension('J')-establecer altura de fila->setWidth(10);
$objPHPExcel->getHojaActiva()-establecer tamaño de fuente en negrita2>getStyle('F')2>getDefaultStyle()-establecer altura de fila->getRowDimension('
$objPHPExcel->getHojaActiva()-establecer tamaño de fuente en negrita2>getStyle('F')2>getDefaultStyle()->obtenerAlineacion()->establecerVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getHojaActiva()-establecer tamaño de fuente en negrita2>getStyle('F')2>getDefaultStyle()->obtenerBordes()->obtenerTodosLosBordes()->establecerEstiloBorde(PHPExcel_Style_Border::BORDER_THIN);
//0); 
$objPHPExcel->getHojaActiva()-establecer tamaño de fuente en negrita1>getDefaultStyle()->obtenerAlineacion()->setSize(
$objPHPExcel->getHojaActiva()->getFont()->obtenerAlineacion()->getStyle('B')
$objPHPExcel->getHojaActiva()->setBold(true);->obtenerAlineacion()->getStyle('B')
$objPHPExcel->getHojaActiva()-establecer alineación horizontal centrada->obtenerAlineacion()->getStyle('B')
$objPHPExcel->getHojaActiva()->getStyle('A->obtenerAlineacion()->getStyle('B')
$objPHPExcel->getHojaActiva()-')->obtenerAlineacion()->getStyle('B')
$objPHPExcel->getHojaActiva()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);->obtenerAlineacion()->getStyle('B')
$objPHPExcel->getHojaActiva()->getStyle('A')->obtenerAlineacion()->getStyle('B')
// 
$objPHPExcel->getHojaActiva()->getStyle('D')1>getStyle('F')1);
// >getStyle('G') 
$objPHPExcel->getStyle('H')
    -:J1>getStyle('I')->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);->mergeCells('A
    -:J2establecer contenido de encabezado de tabla
    ->setActiveSheetIndex(0)2', '订单数据汇总 时间:' . date('Y
    -m2d H:i:s'))
    -', '订单ID')2', '下单人')
    -', '客户名称')2', '下单时间')
    -', '需求机型')2', '数量需求')
    ->setCellValue('G2', 'fecha de entrega requerida')
    ->establecerCelda('H2', 'confirmación de número de material BOM')
    ->establecerCelda('I2', 'PMC fecha de confirmación de entrega')
    ->establecerCelda('J2', 'PMC nota de entrega');
// GlifosMisceláneos, UTF-8 
for ($i = 0; $i < count($result) - 1; $i++) {
  $objPHPExcel->obtenerHojaActiva(0)->establecerCelda('A' . ($i + 3), $result[$i]['id']);
  $objPHPExcel->obtenerHojaActiva(0)->establecerCelda('B' . ($i + 3), $result[$i]['realname']);
  $objPHPExcel->obtenerHojaActiva(0)->establecerCelda('C' . ($i + 3), $result[$i]['customer_name']);
  $objPHPExcel->obtenerHojaActiva(0)->establecerCelda('D' . ($i + 3), $OrdersData[$i]['create_time']);
  $objPHPExcel->obtenerHojaActiva(0)->establecerCelda('E' . ($i + 3), $result[$i]['require_product']);
  $objPHPExcel->obtenerHojaActiva(0)->establecerCelda('F' . ($i + 3), $result[$i]['require_count']);
  $objPHPExcel->obtenerHojaActiva(0)->establecerCelda('G' . ($i + 3), $result[$i]['require_time']);
  $objPHPExcel->obtenerHojaActiva(0)->establecerCelda('H' . ($i + 3), $result[$i]['product_bom_encoding']);
  $objPHPExcel->obtenerHojaActiva(0)->establecerCelda('I' . ($i + 3), $result[$i]['delivery_time']);
  $objPHPExcel->obtenerHojaActiva(0)->establecerCelda('J' . ($i + 3), $result[$i]['delivery_memo']);
  $objPHPExcel->getHojaActiva()->obtenerEstilo('A' . ($i + 3) . ':J' . ($i + 3))->obtenerAlineacion()->establecerVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
  $objPHPExcel->getHojaActiva()->obtenerEstilo('A' . ($i + 3) . ':J' . ($i + 3))->obtenerBordes()->obtenerTodosLosBordes()->establecerEstiloBorde(PHPExcel_Style_Border::BORDER_THIN);
  $objPHPExcel->getHojaActiva()->getDimensionFila($i) + 3)->establecerAlturaFila(16);
}
// Renombrar hoja 
$objPHPExcel->getHojaActiva()->establecerTítulo('Resumen_de_orden');
// Establecer el índice de la hoja activa en la primera hoja, para que Excel la abra como la primera hoja 
$objPHPExcel->establecerIndiceHojaActiva(0);
// Redirigir la salida a un navegador web del cliente (Excel5) 
<span style="color:#ff0000;">ob_end_clean();//Limpiar el búfer, evitar caracteres ilegibles</span>
header('Content-Tipo: aplicación/vnd.ms-excel');
header('Content-Disposición: adjunto; nombre_de_archivo="Resumen_de_orden(' . date('Ymd-His
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5);
$objWriter->guardar('php://output');
?>

Añade la función ob_end_clean() antes de header(), para limpiar el búfer, de esta manera no habrá caracteres ilegibles!

Aquí termina todo el contenido que el editor les ha traído para resolver perfectamente el problema de los caracteres ilegibles al exportar a archivo xls con phpexcel, esperamos que todos nos apoyen y alentemos el tutorial~

Te gustará