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