PHP生成excel时单元格内换行问题的解决方法

翻出来源码开了下,字符串中使用换行的方法为"Name:{$name}\nAddress:{$adress}\nCity:{$city}\nCountry:{$country}\n ......"
既然"\n"起不到换行的目的,修改成"\r\n"看看.
修改 =》 提交 =》测试
得出的结果还是 没有换行!!!!
难道是操作系统兼容问题??
直接使用php runtime 常量 PHP_EOL 替代 "\r\n"
修改 =》 提交 =》测试
得出的结果还是 没有换行!!!!
什么情况? 不可能这个也解决不了 操作系统兼容性问题的换行符号。
看看到底这个xls文件是怎么用php生成的。
看了下 生成excel的代码,Oh My Lady gaga,原来是用html的格式,只是文件后缀写成xls,既然html的格式,那么应该<br />可以起到换行的效果吧。
继续
修改 =》 提交 =》测试
结果是 可以换行了。 可喜可贺啊。问题终于解决了。
告诉老大问题解决,此时心中甚是喜悦啊。

过了一刻钟的样子,老大跑过来说:“换行效果的问题是解决了,但是你看下,数据不好复制了。”
。。。。
省略沟通N句。
把一个单元格的数据复制下,然后 粘贴到 word中。Oh My Lady gaga, 为啥会有border????
到底什么问题?? 使用\n、\r\n 把不能起到换行的相关,使用<br />把效果是有了,但是又出现了新问题。。。 到底如何是好?
没辙了,使用BAIDU google吧。
终于 黄天不负有心人,找到了问题的答案。
在<style></styel>标签中追加 CSS样式br {mso-data-placement:same-cell;}
终于 问题 完美解决。
原文如下:


代码如下:

将HTML文件的扩展名改为XLS后,用Excel打开,里边的每个<br />都会使后边的文字进入另一个单元格,要使<br />在一个单元格内起到换行的作用,可以在CSS里加入这一句:
br {mso-data-placement:same-cell;}

Excel就会把<br />解释成回车了。

在此多谢“卡卡西的真面目” 这位仁兄 把 知识分享出来。 要不然的话,不知道我还要折腾到什么时候才能解决!!

(0)

相关推荐

  • PHP Smarty生成EXCEL文档的代码

    不过,跟据我的试验,如果你不删除一个地方,生成的文档用 excel 打开,是会报错的! 删除所有像这样的串: ss:ExpandedColumnCount="5" 就行了! 示例: 随便填点数据,然后提交,会生成一份 xls 文件. 还有一个小问题没有找出来,这个模板,只能有两笔数据,多了也不行,晕,还没有找到要修改哪里呢. 另外,我开始是把 formValidate.php 和 report.php合在一起写的,结果是没有结果! 分开写,就有结果了! report.php 复制代码

  • php下载excel无法打开的解决方法

    php下载excel文件,1.在下载的过程中不要 输出任何非文件信息,比如 echo log信息. 否则下载后的文件无法打开,提示格式错误或者文件被破坏.2. 输出的excel格式一定要和后缀名保存一直,否也会提示格式错误或者文件被破坏 复制代码 代码如下: if (file_exists(CACHE_PATH . $file_name)){            //$this->logger->error('file realpath:'.realpath(CACHE_PATH . $fi

  • php生成excel文件的简单方法

    生成excel 当然使用的是 phpExcel这个类库了,可是它太麻烦了,对于只要简单生成来说有点不值得 什么叫简单,把数据库的数据导入到excel就行了, 这个就是简单了 下面看一段代码(代码来自网络) 注意要双引号的字符串 复制代码 代码如下: <?php header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:filename=test.xls"); ech

  • PHP实现实时生成并下载超大数据量的EXCEL文件详解

    前言 最近在工作中接到一个需求,通过选择的时间段导出对应的用户访问日志到excel中, 由于用户量较大,经常会有导出50万加数据的情况.而常用的PHPexcel包需要把所有数据拿到后才能生成excel, 在面对生成超大数据量的excel文件时这显然是会造成内存溢出的,所以考虑使用让PHP边写入输出流边让浏览器下载的形式来完成需求. 我们通过如下的方式写入PHP输出流 $fp = fopen('php://output', 'a'); fputs($fp, 'strings'); .... ...

  • 用PHP生成excel文件到指定目录

    最近公司要生成报表,用PHP生成. header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=test_data.xls"); 我百度了下,貌似这个很快能够实现,但是这个文件却是生成在在浏览器下载的地方, 我想把生成的文件生成到指定的目录,这样能否实现呢? 还有,可以往里面插入图片吗? PHPExcel是英文的,看了半天没看懂.有没

  • php生成excel列序号代码实例

    复制代码 代码如下: public function loop(){  $loop = 0;  $charnum = 65; for(; $loop < 150; $loop++){   $quotient = intval($loop / 26);   $remainder = $loop % 26; $f = $quotient>0? chr($charnum+$quotient-1) : '';   $s = $remainder>=0? chr($charnum+$remaind

  • php生成excel列名超过26列大于Z时的解决方法

    本文实例讲述了php生成excel列名超过26列大于Z时的解决方法.分享给大家供大家参考.具体分析如下: 我们生成excel都会使用phpExcel类,这里就来给大家介绍在生成excel列名超过26列大于Z时的解决办法,这是phpExcel类中的方法,今天查到了,记录一下备忘,代码如下: 复制代码 代码如下: public static function stringFromColumnIndex($pColumnIndex = 0)  {          //  Using a lookup

  • PHP生成excel时单元格内换行问题的解决方法

    翻出来源码开了下,字符串中使用换行的方法为"Name:{$name}\nAddress:{$adress}\nCity:{$city}\nCountry:{$country}\n ......" 既然"\n"起不到换行的目的,修改成"\r\n"看看. 修改 => 提交 =>测试 得出的结果还是 没有换行!!!! 难道是操作系统兼容问题?? 直接使用php runtime 常量 PHP_EOL 替代 "\r\n" 修

  • java POI 如何实现Excel单元格内容换行

    java POI Excel单元格内容换行 pom.xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>org.apache.poi</groupId>

  • 解决poi导出时单元格样式被覆盖问题

    目录 poi导出时单元格样式被覆盖 解决方法 poi的cellstyle陷阱,样式覆盖 问题 解决方法 poi导出时单元格样式被覆盖 在poi操作时对每个单元格进行样式设置,出现的问题是单元格样式被覆盖了? 如何解决这一问题???? 解决方法 这里使用到了CellStyle 的一个方法 void cloneStyleFrom(CellStyle var1); 创建一个不影响使用的cell 然后设置样式 在创建一个新的cell使用 createCellStylecopy.cloneStyleFro

  • 点击单元格后可编辑单元格内文本如何制作

    如何通过JAVASCRIPT实现当点击相应的单元格,该单元格内文本变成可编辑的INPUT或SELECT,离开单元格后又单元格内文本为修改后文本.我通过以下方法来实现点击单元格变成INPUT,可不知该在点其它单元格后恢复文本状态和如何返回INPUT后修改的值.是否有更好的方法来实现该效果. window.attachEvent("onload", getTable); function getTable(){ for(i=0; i' tbl.cells[i].innerHTML = ht

  • ASP.NET生成两个日期范围内随机时间的实现方法

    本文实例讲述了ASP.NET生成两个日期范围内随机时间的实现方法.分享给大家供大家参考.具体方法分析如下: 想网上找个生成随机天数的方法找不到,后面只得自己写了,贴给大家方便使用 思路:算两个日期的相差天数,然后在0到相差天数的范围内生成随机数,再用结束时间的天数部分减去这个随机数,代码: 复制代码 代码如下: /// <summary> /// (在两个时间范围内)生成随机日期 /// </summary> /// <param name="startime&qu

  • js导出Excel表格超出26位英文字符的解决方法ES6

    这个需要对Excel表格的表头编码规则有所了解,目前示例代码只扩展到52个字段 /** *json数据导入导出Excel表格示例代码 * / var array_utils = require('./utils-array') var XLSX = require("xlsx"); module.exports = { writeExcel : function (headers,data,file,callback) { if(data.length ==0){ var obj =

  • pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)

    有时候我们需要在程序里执行一些cmd命令,使用os或者其它模块中的popen方法去执行 这个问题一般是程序内有输入导致的,这个输入可以是input(),也可以是其它的一些stdin操作(如os.popen实际上会造成输入请求) 本质上就是:使用-w参数(无控制台)打包时程序里不要请求输入 或者,你也可以不用-w参数,手动隐藏控制台! 有一天,我把使用了os.popen方法的python程序用pyinstaller打包成exe(用了无控制台打包参数-w) 双击运行时程序却弹框报错! 我就有点纳闷:

  • 大容量csv快速内导入sqlserver的解决方法(推荐)

    前言 在论坛中回答了一个问题,导入csv 数据,并对导入的数据增加一个新的列date datetime.要求在10s内完成,200w行数据的导入.分享下解决问题的思路和方法 分析 通常来讲Bulk insert 比 BCP 更快一点,我们选择Bulk insert的方式. 提出的解决方案:先把数据导入到sql server 的临时表,然后再插入目标表. 具体语句如下: bulk insert test07232 from 'D:\2017-7-22.csv' WITH ( FIELDTERMIN

  • Linux程序运行时加载动态库失败的解决方法

    Linux下不能加载动态库问题 当出现下边异常情况 ./test: error while loading shared libraries: libmfs_open.so: cannot open shared object file: No such file or directory 若动态库的路径在(/usr/cluster/.share/lib) 解决办法: 方法一.在/etc/ld.so.conf文件中添加路径,vi /etc/ld.so.conf 添加下边内容 include ld

  • matplotlib 生成的图像中无法显示中文字符的解决方法

    前几天使用matplotlib 绘图的时候发现无法使用中文字符,所以找了个笔记,顺便分享给大家 开发环境 windows 8.1 64bit python 3.6.0 matplotlib 3.2.1 问题背景 使用 matplotlib 绘制函数图像的时候,发现设置图像名称或图例需要汉字显示的时候只能得到空格 生成图像中的中文错误效果 原因分析 python中的matplotlib仅支持Unicode编码,默认是不显示中文的. 解决方案 解决方案1 python文件中添上一段语句 plt.rc

随机推荐