PHP版本的javascript表格到excel

PHP版本的javascript表格到excel,javascript,php,google-analytics,export-to-excel,Javascript,Php,Google Analytics,Export To Excel,我被要求为谷歌分析做一个脚本。该脚本工作完全正常,但我在将其传输到具有不同工作表的excel文档时遇到了问题 我遇到这个解决方法是为了有效地添加表(我输出一系列表,每个表都是一个单独的电子表格) 现在让人恼火的是,除了生成大量数据(每个电子表格多达10k行)的查询外,这项功能完全符合我所拥有的数据的要求,然后崩溃并显示chrome的aw快照页面 我已经研究PHPExcel有一段时间了,但是我无法理解如何在单击导出按钮时单独显示excel文档(我希望它只在单击时进行查询) 这是我到目前为止使用的p

我被要求为谷歌分析做一个脚本。该脚本工作完全正常,但我在将其传输到具有不同工作表的excel文档时遇到了问题

我遇到这个解决方法是为了有效地添加表(我输出一系列表,每个表都是一个单独的电子表格)

现在让人恼火的是,除了生成大量数据(每个电子表格多达10k行)的查询外,这项功能完全符合我所拥有的数据的要求,然后崩溃并显示chrome的aw快照页面

我已经研究PHPExcel有一段时间了,但是我无法理解如何在单击导出按钮时单独显示excel文档(我希望它只在单击时进行查询)

这是我到目前为止使用的php

$objPHPExcel = new PHPExcel();
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
PHPExcel_Settings::setCacheStorageMethod($cacheMethod);

$date = date('M Y',strtotime(startmonths($month,$numyears - ceil($i/12))));
$myWorkSheet = new PHPExcel_Worksheet($objPHPExcel, strval($date));
$objPHPExcel->addSheet($myWorkSheet);
$arrayData = array($rowlabels,$renamed);
$objPHPExcel->getActiveSheet()->fromArray($arrayData,NULL,'A1');

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="danapp.xls"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
其中$rename是我传入的数据数组(可能可以重命名它,但只需要这个函数)。并且带有表单的部分位于用于查询的大型for循环中

最初的方法存在的问题是,这实际上是在实际的google analytics页面中导出功能的一个变通方法,该页面不具备每月最多10k链接的能力

这是让它工作的最后一部分,我必须在明天结束之前让它工作(明天是我在这里工作的最后一天)

最后我要问的问题是,是否有办法将我拥有的javascript函数转换为php函数,因为它只写入字符串(尽管是严格格式的),所以我可以在链接中输出该字符串(或者这就是问题所在,因为链接太长了?也许更好的方法是为该文档打开一个新窗口,我不确定,而且我没有太多时间来处理它,因为我同时完成了一些其他工作)


刚刚打印了一个url,其中一个结果被破坏了…我认为这个url对于这个方法来说有点长(1350万个字符..所有这些字符都需要)

简短的回答是可以的,您可以将JavaScript转换为PHP函数。JS只是将所有内容格式化到页面中。我怀疑是内存问题导致浏览器崩溃。这应该会对您有所帮助:抱歉,这对我没有帮助。我很确定这是因为为数据uri生成的url太长,这会导致这就是为什么我想通过php临时生成文件,并强制用户下载文件,然后自动删除文件(基本上模拟行为)。初始表是通过一个php数组生成的,该数组由google analytics API填充。数据是如何添加到表中的?或者该表是静态的?这意味着,我可以用php加载HTML,这意味着我可以在其上使用DOM。简言之,是的,你可以将JavaScript转换为php函数。JS只是将所有内容格式化为t他打开了页面。我怀疑是内存问题导致浏览器崩溃。这应该对你有所帮助:对不起,这对我没有帮助。我很确定这是因为为数据uri生成的url太长了,这就是为什么我想临时通过php生成文件,并强制用户下载它,然后自动删除该文件(基本上模拟行为)。初始表是通过一个php数组生成的,该数组由google analytics API填充。数据是如何添加到表中的?或者该表是静态的?这意味着,我可以在php中加载HTML,这意味着我可以在其上使用DOM。
  $('.export').on('click',function(){
    $('table').each(function(){
      var table = $(this);
      tables.push(table[0]);
      labels.push(table.find('thead th').text());
    });
    tablesToExcel(tables,labels,'TheDanApp.xls','Excel');
  });
$objPHPExcel = new PHPExcel();
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
PHPExcel_Settings::setCacheStorageMethod($cacheMethod);

$date = date('M Y',strtotime(startmonths($month,$numyears - ceil($i/12))));
$myWorkSheet = new PHPExcel_Worksheet($objPHPExcel, strval($date));
$objPHPExcel->addSheet($myWorkSheet);
$arrayData = array($rowlabels,$renamed);
$objPHPExcel->getActiveSheet()->fromArray($arrayData,NULL,'A1');

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="danapp.xls"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');