我的数据库是mysql,有两个字段是text类型,在前台录入时,回车换行了。然后生成excel就变成下面的效果:
20101103 中关村 刘先生 潘进 ="打印时报:1.数据读取错误
2.小模块出纸错误
地址:中关村1+1大厦1层" 换机器 20101103 13:24 20101104 17:33 已解决
正常效果应该是:
20101103 中关村 刘先生 潘进 打印时报:1.数据读取错误 2.小模块出纸错误 地址:中关村1+1大厦1层 换机器 20101103 13:24 20101104 17:33 已解决 数据在form表单代码:<textarea cols="60" rows="8" name="question"></textarea>如何解决这个问题呢?
20101103 中关村 刘先生 潘进 ="打印时报:1.数据读取错误
2.小模块出纸错误
地址:中关村1+1大厦1层" 换机器 20101103 13:24 20101104 17:33 已解决
正常效果应该是:
20101103 中关村 刘先生 潘进 打印时报:1.数据读取错误 2.小模块出纸错误 地址:中关村1+1大厦1层 换机器 20101103 13:24 20101104 17:33 已解决 数据在form表单代码:<textarea cols="60" rows="8" name="question"></textarea>如何解决这个问题呢?
解决方案 »
- PHP怎样连接Sql Server数据库
- PHP如何读取USB KEY里面的数字证书的信息
- php建站的数据数是怎么回事
- 收藏 扫微信公共平台二维码,用微信扫就跳转到公共平台界面,没有用就跳转下载微信界面,这个功能是如何实现的?
- php中使用require好还是require_once好?
- supplied argument is not a valid MySQL result resource和JS的一些问题
- 单点登录
- 询问大家两个初级问题
- 怪事!!! linux+apache+php和windowns+IIS+php下调用session有区别吗
- 关于mp3在线播放
- 计算字符串公式的值
- 请老师指教啊!!!!
* 导出数据
*
* @param unknown_type $ary
* @param unknown_type $GetKeys
*/
function ExecutionExportPrint($ary,&$GetKeys)//$ary是结果集,$GetKeys是你选择复选框才导出对应的数据字段
{
//定义此数组存储excel列标
$_total = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX');
//定义表格title
$_totaltitle = array(
'WorkID'=>'稿件编号',
'DesignTime'=>'设计日期',
'ProdName'=>'期刊名称',
'IssueTime'=>'刊期',
'DeptID'=>'部门名称',
'CorpName'=>'客户名称',
'Pusn'=>'客户助理',
'Designer'=>'设计师',
'P'=>'p数',
'Color'=>'颜色',
'EditionName'=>'版位',
'WorkType'=>'类型',
'WorkStatus'=>'稿件状态',
'Urgency'=>'紧急程度'
);
//截取与字段数目等值的一段列标数组
for ($i = 0; $i < count($GetKeys); $i++)
{
$column[$i] = $_total[$i];
}
//组装成 列标=>字段名 的数据结构。
$fieldmap = array_combine($column,$GetKeys);
$objExcel = new PHPExcel();
$objActSheet = $objExcel -> getActiveSheet(0);
//error_reporting(E_ALL);
//使用cache_towincache方式,单元格对象会保存在Wincache中,只在内存中保存索引
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_wincache;
$cacheSettings = array( 'cacheTime' => 600
);
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
//第一行插入title,设置居中
for ($i = 1;$i <= count($ary);$i ++)
{
foreach ($fieldmap as $key=>$value)
{
$objActSheet -> setCellValue($key.'1', transformUtf8($_totaltitle[$value]));//列值
//$objActSheet -> getColumnDimension($key) -> setWidth();//宽度
$objActSheet -> getStyle($key.'1') -> getAlignment() -> setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objActSheet -> setCellValue($key.($i+1), transformUtf8($ary[$i-1] -> $value));
$objActSheet -> getStyle($key.($i+1)) -> getAlignment() -> setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
}
}
if(self::ex == '2007')
{ //导出excel2007文档
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.date('Ymdhis').'.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');
$objWriter -> save('php://output');
exit;
} else
{ //导出excel2003文档
header('Content-Type: application/vnd.ms-excel;charset=UTF-8');
header('Content-Disposition: attachment;filename="'.date('Ymdhis').'_Excel.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel5');
$objWriter -> save('php://output');
exit;
}
}
HTML:
<div class="tab_cells">可选择的导出列;</div><div>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr> <td width="15%" bgcolor="#FFFFFF"><input name="WorkID" type="checkbox" id="WorkID" value="1" checked="checked" />
稿件ID</td>
<td width="17%" bgcolor="#FFFFFF"><input name="DesignTime" type="checkbox" id="DesignTime" value="1" checked="checked" />
制作日期</td>
<td width="16%" bgcolor="#FFFFFF"><input name="ProdName" type="checkbox" id="ProdName" value="1" checked="checked" />
期刊名称</td>
<td width="10%" bgcolor="#FFFFFF"><input name="IssueTime" type="checkbox" id="IssueTime" value="1" checked="checked" />
刊期</td>
<td width="10%" bgcolor="#FFFFFF"><input name="DeptID" type="checkbox" id="DeptID" value="1" checked="checked" />部门</td>
<td width="14%" bgcolor="#FFFFFF"><input name="CorpName" type="checkbox" id="CorpName" value="1" checked="checked" />
客户 </td>
<td width="18%" bgcolor="#FFFFFF"><input name="Pusn" type="checkbox" id="Pusn" value="1" checked="checked" />
客户助理</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><input name="Designer" type="checkbox" id="Designer" value="1" checked="checked" />
设计师 </td> <td bgcolor="#FFFFFF"><input name="P" type="checkbox" id="P" value="1" checked="checked" />
P数</td>
<td bgcolor="#FFFFFF"><input name="Color" type="checkbox" id="Color" value="1" checked="checked" />
色彩 </td>
<td bgcolor="#FFFFFF"><input name="EditionName" type="checkbox" id="EditionName" value="1" checked="checked" />
版位</td>
<td bgcolor="#FFFFFF"><input name="WorkType" type="checkbox" id="WorkType" value="1" checked="checked" />
类型</td>
<td bgcolor="#FFFFFF"><input name="Urgency" type="checkbox" id="Urgency" value="1" checked="checked" />紧急程度</td>
<td bgcolor="#FFFFFF"><input name="WorkStatus" type="checkbox" id="WorkStatus" value="1" checked="checked" />
状态</td>
</tr>
</table>
</div>
我的主要问题是采用什么措施在我的代码基础上解决导出的数据在excel中错行的问题?
$questions=str_replace("<br />","",nl2br(htmlspecialchars($query_row[question])));
改成
$questions = preg_replace("/[\r\n]/s", "\t", $query_row[question]);