今天使用了两种方法实现了该功能:一种是js的,一种是php的
不需要使用网上搜到的jquery的插件table2excel
具体实现如下所示:
1.js方法的
function exportExcel(tableid) {
tableToExcel(tableid);
}
var tableToExcel = (function() {
var uri = 'data:application/vnd.ms-excel;base64,',
template = '<html><head><meta charset="UTF-8"></head><body><table>{table}</table></body></html>',
base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) },
format = function(s, c) {
return s.replace(/{(\w+)}/g,
function(m, p) { return c[p]; }) }
return function(table, name) {
if (!table.nodeType) table = document.getElementById(table);
var rows = table.rows.length ;//表格行数
var tablehtml = '';
for (var i=0;i<rows;i++) {
tablehtml=tablehtml+'<tr>';
for (var j=0;j<9;j++) {
if (j==0 && i!=0) {
var candlid = table.rows[i].cells[j].innerHTML;
var arr = candlid.split('/');
var cId = arr[0];
var arr1 = arr[4].split('>');
var lId = arr1[1].replace('<','');
tablehtml=tablehtml+'<td>'+cId+'/'+lId+'</td>';
continue;
}
if (j==1 && i!=0) {
var candlname = table.rows[i].cells[j].innerHTML;
var arr = candlname.split('<br>');
tablehtml=tablehtml+'<td>'+arr[0]+'/'+arr[1]+'</td>';
continue;
}
tablehtml=tablehtml+'<td>'+table.rows[i].cells[j].innerHTML+'</td>';
}
tablehtml=tablehtml+'</tr>';
}
var ctx = {worksheet: name || 'Worksheet', table: tablehtml}
window.location.href = uri + base64(format(template, ctx))
}
})();
2.php实现
//设置表头
include_once('./excel/PHPExcel.php');
$this->_objPHPExcel = new PHPExcel();
$this->_objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', 'a') ->setCellValue('B1', 'b') ->setCellValue('C1', 'c') ->setCellValue('D1', 'd'); //存放数据 foreach ($arrOutput['list'] as $key => $value) { $num=$key+2; $this->_objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.$num, $value['a']) ->setCellValue('B'.$num, $value['b']) ->setCellValue('C'.$num, $value['c']) ->setCellValue('D'.$num, $value['d']); } $this->_objPHPExcel->getActiveSheet()->setTitle('User'); $this->_objPHPExcel->setActiveSheetIndex(0); $outputFileName = 123; header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="'.$outputFileName.'.xls"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($this->_objPHPExcel, 'Excel5'); $objWriter->save('php://output');