导出数据超出EXCEL行列本身限制时如何解决!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导出数据超出EXCEL行列本身限制时如何解决!!!相关的知识,希望对你有一定的参考价值。

EXCEL 本身的限制是 256 列 x 65,536 行
假如我用EXCEL (TEXT TO COLUMN功能,中文应该是分列功能)把TEXT文本根据逗号分切成很多列,但是这个超出了256列,怎么办?

又或者我从某个报表系统导出数据超出了65536行,又怎么办?

无论从实用角度,或者从理论研究角度,都迫切希望能找到答案,所以……

大虾们,HELP

1、//导入phpExcel类库,因为PHPExcel没有用命名空间,只能inport导入
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

  1. a.文件位置: %windir%/system32/inetsrv/config/applicationhost.config
  2. b.找到 <requestFiltering> 节点
  3. 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行列本身限制时如何解决!!!的主要内容,如果未能解决你的问题,请参考以下文章

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

C#导出涉及行列合并的复杂的Excel数据

字符串 IF ELSE 函数超出 Excel 字符数限制?

powerbi导出动不了

导出Excel功能,如果行数超过65535行,怎么解决

EXCEL大数据量导出的解决方案