导出数据超出EXCEL行列本身限制时如何解决!!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导出数据超出EXCEL行列本身限制时如何解决!!!相关的知识,希望对你有一定的参考价值。
EXCEL 本身的限制是 256 列 x 65,536 行
假如我用EXCEL (TEXT TO COLUMN功能,中文应该是分列功能)把TEXT文本根据逗号分切成很多列,但是这个超出了256列,怎么办?
又或者我从某个报表系统导出数据超出了65536行,又怎么办?
无论从实用角度,或者从理论研究角度,都迫切希望能找到答案,所以……
大虾们,HELP
import("Org.Util.PHPExcel");
import("Org.Util.PHPExcel.Writer.Excel5");
import("Org.Util.PHPExcel.IOFactory.php");
$date = date("Y_m_d",time());
$fileName .= "_$date.xls";
2、 //创建PHPExcel对象,注意,不能少了\
$objPHPExcel = new \PHPExcel();
$objProps = $objPHPExcel->getProperties();
3、//设置表头
$key = 0;
4、 //print_r($headArr);exit;
foreach($headArr as $v)
5、//注意,不能少了。将列数字转换为字母\
$colum = \PHPExcel_Cell::stringFromColumnIndex($key);
$objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
$key += 1;
$column = 2;
$objActSheet = $objPHPExcel->getActiveSheet();
foreach($data as $key => $rows) //行写入 $span = 0;
foreach($rows as $keyName=>$value)// 列写入
$j = \PHPExcel_Cell::stringFromColumnIndex($span);
$objActSheet->setCellValue($j.$column, $value);
$span++;
$column++;
$fileName = iconv("utf-8", "gb2312", $fileName);
7、//重命名表
$objPHPExcel->getActiveSheet()->setTitle($date);
8、//设置字体大小
$objPHPExcel->getDefaultStyle()->getFont()->setSize(14);
9、 //设置单元格宽度
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);
10、 //设置默认行高
$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(23);
11、//设置活动单指数到第一个表,所以Excel打开这是第一个表
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment;filename=\"$fileName\"");
header('Cache-Control: max-age=0');
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output'); //文件通过浏览器下载exit; 参考技术A 数据库条数不是按M数来算的1700M跟10M不能说明你的数据条数EXCEL装不了。
数据库之前的关系,每个表的大小,条数都影响数据库的大小。
你可以试着检查数据库各个表的条数
小于1048576就导到2007。大于的话你可以导到N个SHEET中即可。 参考技术B Excel2007或更新版本创建的.xlsx格式文档,每个工作表可以支持16384列*1048576行
估计你用的是Excel2003。
所以,安装新版本的OFFICE即可。 参考技术C 您好,希望以下回答能帮助您
使用ACCESS存储原始数据,在EXCEL中通过透视图表来进行数据统计分析。
如您还有疑问可继续追问。本回答被提问者和网友采纳 参考技术D 数据在sheet1放不了可以放在sheet2追问
TXT转换过来的,如果拆分到sheet2
追答还是换个新版的office吧!一步到位,方便快捷!
解决使用phpmyadmin导出导入数据库时提示的“超出长度”“超时”问题
IIS请求筛选模块被配置为拒绝超过请求内容长度的请求
1、 修改IIS的applicationhost.config
- a.文件位置: %windir%/system32/inetsrv/config/applicationhost.config
- b.找到 <requestFiltering> 节点
- c.为这个节点添加如下元素:<requestLimits maxAllowedContentLength="2147483647" /> (上传的大小将改为2G)
注:该节点下默认没有 <requestLimits maxAllowedContentLength="上传大小的值(单位:byte)" /> 元素。
2、 web.config中添加如下内容
<configuration>
<system.web>
<httpRuntime maxRequestLength="2097151" executionTimeout="120"/>
</system.web>
</configuration>
FastCGI 进程超过了配置的活动超时时限
1、IIS7->FastCGI设置->双击"php-cgi.exe"->"活动超时" 项默认是设置为70(秒),改为600(10分钟,此处根据需求设置可以略高~)
2、网站站点:
在网站的高级设置里面,单击连接限制,默认为120秒,这里面更改的是每个站点的
参考资料:
https://www.cnblogs.com/sell/p/4056823.html
http://www.jb51.net/article/39436.htm
以上是关于导出数据超出EXCEL行列本身限制时如何解决!!!的主要内容,如果未能解决你的问题,请参考以下文章