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']; //创建一个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); //set row height $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); //set horizontal center $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', 'Required delivery date') ->setCellValue('H2', 'Confirmed BOM material number') ->setCellValue('I2', 'PMC confirmed delivery date') ->setCellValue('J2', 'PMC delivery memo'); // 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); } // Umbenennen des Arbeitsblatts $objPHPExcel->getActiveSheet()->setTitle('Bestellübersichtstabelle'); // Setzen Sie den Index der aktiven Arbeitsblatt auf das erste Blatt, damit Excel dies als erstes Blatt öffnet $objPHPExcel->setActiveSheetIndex(0); // Leiten Sie die Ausgabe an den Webbrowser des Clients weiter (Excel5) <span style="color:#ff0000;">ob_end_clean();//Puffer leeren, um falsche Zeichensätze zu vermeiden</span> header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="Bestellübersichtstabelle(' . date('Ymd-His header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5); $objWriter->save('php://output'); ?>
Fügen Sie vor header() die Funktion ob_end_clean() hinzu, um den Puffer zu leeren, so dass es keine falschen Zeichensätze mehr gibt!
Das ist alles, was der Redakteur Ihnen zu dem perfekten Lösungsweg für das Problem des Exportiertes Excel in xls-Datei mit falschen Zeichensätzen gebracht hat. Ich hoffe, dass Sie die Anleitung unterstützt und unterstützt!