目前我有一个用于导出到Excel的类,它适用于英语,但是,在其他编码中,例如汉字是错误编码的
https://github.com/bcit-ci/CodeIgniter/wiki/Export-to-Excel-2013
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
/*
* Excel library for Code Igniter applications
* Based on: Derek Allard, Dark Horse Consulting, www.darkhorse.to, April 2006
* Tweaked by: Moving.Paper June 2013
*/
class Export {
function to_excel($array, $filename) {
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename=' . $filename . '.xls');
//Filter all keys, they'll be table headers
$h = array();
foreach ($array->result_array() as $row) {
foreach ($row as $key => $val) {
if (!in_array($key, $h)) {
$h[] = $key;
}
}
}
//echo the entire table headers
echo '<table><tr>';
foreach ($h as $key) {
$key = ucwords($key);
echo '<th>' . $key . '</th>';
}
echo '</tr>';
foreach ($array->result_array() as $row) {
echo '<tr>';
foreach ($row as $val)
$this->writeRow($val);
}
echo '</tr>';
echo '</table>';
}
function writeRow($val) {
echo '<td>' . utf8_decode($val) . '</td>';
}
}
尝试添加
header("Content-type: text/html; charset=utf-8");
在功能开始但没有运气
非常感谢你的帮助。
答案 0 :(得分:2)
使用PHPExcel而不是自定义类,而且效果很好
$this->load->library('PHPExcel');
$this->load->library('PHPExcel/IOFactory');
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setTitle("Trial Report");
// Assign cell values
$objPHPExcel->setActiveSheetIndex(0);
//Filter all keys, they'll be table headers
$h = array();
foreach ($result as $row) {
foreach ($row as $key => $val) {
if (!in_array($key, $h)) {
$h[] = $key;
}
}
}
//Writing the first header row
foreach ($h as $key => $val) {
$val = ucwords($val);
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($key, 1, $val); //first row is 1
}
$pos = 0;
foreach ($result as $r_key => $row) {
foreach ($row as $col) {
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($pos, ($r_key + 2), $col); //skip the first row
$pos++;
}
$pos = 0;
}
$objWriter = IOFactory::createWriter($objPHPExcel, 'Excel5');
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="export.xls"');
$objWriter->save('php://output');
答案 1 :(得分:1)
中国传统(Big5)
header("Content-type: text/html; charset=big5");
更多:
Chinese Simplified (EUC)
##charset=EUC-CN
Chinese Simplified (GB2312)
##charset=gb2312
Chinese Simplified (HZ)
##charset=hz-gb-2312
Chinese Simplified (Mac)
##charset=x-mac-chinesesimp
Chinese Traditional (Big5)
##charset=big5
Chinese Traditional (CNS)
##charset=x-Chinese-CNS
Chinese Traditional (Eten)
##charset=x-Chinese-Eten
Chinese Traditional (Mac)
##charset=x-mac-chinesetrad
##charset=950