dede织梦系统怎样导出后台的文章或自定义模型中的数据到excel,并且不出现乱码
来源:互联网 发布:php什么时候用双引号 编辑:程序博客网 时间:2024/05/16 06:34
在后台目录创建一个php文件toexcel.php,在最上面加入代码;
require_once(dirname(__FILE__).'/config.php');
require_once(DEDEINC.'/typelink.class.php');
require_once(DEDEINC.'/datalistcp.class.php');
require_once(DEDEADMIN.'/inc/inc_list_functions.php');
加入导出到excel类;
class Excel
{
private $head;
private $body;
public function addHeader($arr){
foreach($arr as $headVal){
$headVal = $this->charset($headVal);
$this->head .= "{$headVal}\t ";
}
$this->head .= "\n";
}
public function addBody($arr){
foreach($arr as $arrBody){
foreach($arrBody as $bodyVal){
$bodyVal = $this->charset($bodyVal);
$this->body .= "{$bodyVal}\t ";
}
$this->body .= "\n";
}
}
public function downLoad($filename=''){
if(!$filename)
$filename = date('YmdHis',time()).'.xls';
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=$filename");
header("Content-Type:charset=gb2312");
if($this->head)
echo $this->head;
echo $this->body;
}
public function charset($string){
return mb_convert_encoding($string,'GBK','auto');
}
}
代码解释:
1.输出列名数组,并转码
public function addHeader($arr){
foreach($arr as $headVal){
$headVal = $this->charset($headVal);
$this->head .= "{$headVal}\t ";
}
$this->head .= "\n";
}
2.输出导出内容数组,并转码
public function addBody($arr){
foreach($arr as $arrBody){
foreach($arrBody as $bodyVal){
$bodyVal = $this->charset($bodyVal);
$this->body .= "{$bodyVal}\t ";
}
$this->body .= "\n";
}
}
3.设置header头部信息和导出到excel内容,并输出到浏览器
public function downLoad($filename=''){
if(!$filename)
$filename = date('YmdHis',time()).'.xls';
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=$filename");
header("Content-Type:charset=gb2312");
if($this->head)
echo $this->head;
echo $this->body;
}
4.转码,这里不用iconv函数,有可能会与gd冲突导致输出空白。用
public function charset($string){
return mb_convert_encoding($string,'GBK','auto');
}
7.调用方法;
$excel = new Excel();
$excel->addHeader(array('列一','列二','列三','列四'));
global $dsql;
$sql="select 列一字段,列二字段,列三字段,列四字段 from 表名";
$dsql->SetQuery($sql);
$dsql->Execute();
while($row = $dsql->GetArray()){
$list[]=$row;
}
unset($row);
$excel->addBody($list);
$excel->downLoad();
后天添加导出到excel代码:
找到后台目录下的templets目录,下面有个content_list.htm文件,
找到<a href="javascript:;" onClick="cAtts('attsDel',event,this)" class="coolbg"> 删除属性 </a>
在后面加一段代码
<?php if($channelid==1) echo " <a href=\"toexcel.php\" class=\"coolbg\" target=\"_blank\">导出到excel</a>\r\n"; ?>
$channelid就是你的模型id,根据你导出的表填写。填写完之后打开后台栏目列表就出现导出按钮
- dede织梦系统怎样导出后台的文章或自定义模型中的数据到excel,并且不出现乱码
- OBIEE数据导出到excel图例文字出现方块乱码
- 在使用中文名导出数据到excel文件时文件名出现乱码的解决办法
- 在使用中文名导出数据到excel文件时文件名出现乱码的解决办法
- 用sql2005导出数据到access或excel时,出现" 找不到sourceconnectionoledb"的错误
- 将Excel或CSV文件中的数据导出到DataSet
- Dede织梦系统后台升级更新后出现的空白
- 后台使用jeecg模板excel导出,会出现检索字段传入后台乱码的问题
- GridView 导出数据到excel数据乱码
- mysql数据导出导入不出现乱码的几个前提条件
- java编程将excel中的数据存入DB或从DB导出到excel
- Gridview导出到excel中汉字出现乱码的问题(支持EXCEL 03)
- 导出excel含有中文名,中文不显示或乱码
- 将DataTable中的数据导出Excel(解决了在火狐中出现乱码情况)
- 织梦系统(dede)调用文章摘要的标签
- dede 自定义内容模型 不能添加文章
- 实现GridView中的数据的打印和导出到Excel
- 实现GridView中的数据的打印和导出到Excel
- lua源码阅读(3)----字符串
- INNER JOIN连接两个表、三个表、五个表的SQL语句
- 使用三种不同核函数配置的支持向量机(回归)模型对美国波士顿地区房价进行预测
- MyISAM和InnoDB的索引实现
- Android消息机制
- dede织梦系统怎样导出后台的文章或自定义模型中的数据到excel,并且不出现乱码
- centos7下编译安装nginx
- bzoj1189: [HNOI2007]紧急疏散evacuate(二分+最大流+宽搜)
- 大数(转自http://blog.csdn.net/zz_1215/article/details/6716132)
- chcon命令详解
- C++笔记记录Ⅲ 继承与多态
- 【Tensorflow】tf.nn.depthwise_conv2d如何实现深度卷积?
- 自定义ActionBar、Toolbar布局(解决自定义ActionBar布局左边始终有一点边距的问题)
- 安卓多用户笔记-跨用户空间数据迁移