Tag: phpexcel

PHPExcel格式不正确

你好我试图通过Ajax生成和下载excel文件,但不幸的是我得到这个错误not well-formed ,没有更具体的..我已经检查了所有的variables等,我敢肯定,有没有缺less任何所需的值..所以基本上这是调用PHPExcel脚本的代码.. $("#myForm").submit(function(e) { var group_id = <?php echo $group_id; ?>; var month = <?php echo $month; ?>; var year = <?php echo $year; ?>; $.ajax({ url: 'ajax/events_to_excel.php?id='+group_id+'&m='+month+'&y='+year, type: 'POST', data: $(this).serialize(), success: function(data, textStatus, jqXHR) { //console.log(data); }, error: function(jqXHR, textStatus, errorThrown) { } }). done(function(data) { }); e.preventDefault(); }); 这是生成Excel文档的结尾标题代码(我不会显示所有以前的代码,因为我知道有一切正常,没有错误,已经检查和工作在不同的页面)唯一的部分,这里给出的错误是标题信息 // Redirect […]

'getHighestRow'不考虑格式

使用PHPExcel,我有getHighestRow()函数的问题。 如果电子表格被格式化为最后的数据input之外,则最高行不会反映数据input,而是包括格式化在内的单元格修改。 我如何获得有用的行数,意味着只有非空数据的行数? 到目前为止,我使用下面的代码作为替代,但我不满意加载整个第一列: $file = $fileForm->get('file')->getData(); $path = $file->getRealPath(); $phpExcel = $this->get('phpexcel')->createPHPExcelObject($path); $worksheet = $phpExcel->getSheet(); $firstColumn = $worksheet->rangeToArray("A1:A" . $worksheet->getHighestRow(), null, false, false); $firstColumn = array_map(function(Array $lines) { return array_values($lines)[0]; }, $firstColumn); $highestRow = count(array_filter($firstColumn)); unset($firstColumn);

如何修复Codeplex phpexcel中的内存错误?

我试图读取excel文件并将其转换为数组。 但即时通讯 following error. Fatal error: Allowed memory size of 1677721600 bytes exhausted (tried to allocate 38 bytes) in /var/www/import_excel/Classes/PHPExcel/Worksheet.php on line 2431 我用下面的代码来阅读 set_include_path(get_include_path() . PATH_SEPARATOR . 'Classes/'); include 'PHPExcel/IOFactory.php'; $inputFileName = $target_file; try { $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); } catch(Exception $e) { die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage()); } error_reporting(-1); ini_set('display_errors',1); $allDataInSheet = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); echo […]

在导出到Excel时,像处理任何其他文本值一样处理公式

我已经构build了一个报告解决scheme,可以将数据导出为Excel。 使用PHPExcel,这个工作很漂亮。 但是,我们需要构build仪表板样式模板表,并在运行时将其插入到输出中,包括公式。 我有这一切工作正常,我的问题是,有时这些仪表板模板是相当复杂的PHPExcel扼stream圈公式的时候,它会尝试输出。 我花了相当多的时间find解决方法,甚至去分叉我自己,并添加一个禁用计算,将试图阻止处理公式的方法,但不能得到它的工作。 我也试过禁用计算caching。 @MarkBaker在这个库上做了一个非常棒的工作,我已经多次看到他提到的这个并不是为了修改文件而devise的,但是如果做得非常仔细的话,它似乎就可以工作。 我的问题是,我如何告诉PHPExcel 停止尝试计算公式? 我希望它像对待任何其他文本值一样对待它们,并让Excel自己处理validation。 这可能吗? 作为一个例子,下面是一个PHPExcel似乎不喜欢的公式: =IFERROR(IF($L$3="UNITS",COUNTIF('K1_Current_Accounts'!$M$2:$M$10000,'Snapshot Summary'!H5)+COUNTIF('K1_Current_Available'!$M$2:$M$10000,'Snapshot Summary'!H5),IF($L$3="Cost Basis",SUMIF('K1_Current_Accounts'!$M$2:$M$10000,'Snapshot Summary'!H5,'K1_Current_Accounts'!$E$2:$E$10000)+SUMIF('K1_Current_Available'!$M$2:$M$10000,'Snapshot Summary'!H5,'K1_Current_Available'!$E$2:$E$10000),IF($L$3="Notes",SUMIFS('K1_Current_Accounts'!$AA$2:$AA$10000,'K1_Current_Accounts'!$M$2:$M$10000,'Snapshot Summary'!H5,'K1_Current_Accounts'!$R$2:$R$10000,'Snapshot Summary'!$A$7)+SUMIFS('K1_Current_Accounts'!$AA$2:$AA$10000,'K1_Current_Accounts'!$M$2:$M$10000,'Snapshot Summary'!H5,'K1_Current_Accounts'!$R$2:$R$10000,'Snapshot Summary'!$A$8)+SUMIFS('K1_Current_Accounts'!$AA$2:$AA$10000,'K1_Current_Accounts'!$M$2:$M$10000,'Snapshot Summary'!H5,'K1_Current_Accounts'!$R$2:$R$10000,'Snapshot Summary'!$A$9),IF($L$3="Cash",SUMIFS('K1_Historical_Accounts'!$AC$2:$AC$10000,'K1_Historical_Accounts'!$M$2:$M$10000,'Snapshot Summary'!H5,'K1_Historical_Accounts'!$R$2:$R$10000,'Snapshot Summary'!$A$10))))),"") 我读到SUMIFS可能会导致问题,但我不知道如何按照build议(这些仪表板是由业务开发团队构build的)重构那些SUMPRODUCT 。 此外,我们有我们的列的范围去像10000,因为范围如A:A也不工作。 他们在Excel中工作得很好,所以如果我能够让PHPExcel停止validation所有事情,并让它通过,我的生活将是光荣的! 编辑 进一步看堆栈跟踪,它似乎开始发生时,它试图写一个图表: 编辑2 将图表生成作为这个问题的来源,只有一个图表,它的数据源是='Sales History'!$Y$4:$CR$5 ,我可以看到它肯定会尝试处理,但是这不应该这不是一个问题,因为这是一个相对简单的参考。

使用PHPExcel和Codeigniter读取excel文件并写入数据库

我想在excel文件中写入一些信息到我的数据库。 excel文件看起来像这样。 ID123 | subj1 | 50 ID456 | subj2 | 60 ID786 | subj3 | 70 这是触发控制器中的function的function。 <a href="http://localhost/SEP/index.php/con_test/readExcel"> Click me </a> 这是控制器中的代码。 public function readExcel(){ $inputFileName = 'C:\wamp\www\SEP\uploads\Format.xlsx'; // Read your Excel workbook try { $inputFileType = PHPExcel_IOFactory::identify($inputFileName); $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objReader->load($inputFileName); } catch(Exception $e) { die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage()); […]

PHPExcel需要很长时间来加载xls,很好用xlsx

美好的一天。 我有这样的xls文件: +—-+——-+——–+ | ID | PRICE | STATUS | +—-+——-+——–+ | 1 | 1000 | 1 | | 2 | 1000 | 3 | | 4 | 1324 | 5 | | 8 | 3141 | 1 | +—-+——-+——–+ 正如你所看到的,没有太多的行和列。 但是,当我尝试保存它像XLS文件,然后像这样加载到PHPExcel: $objPHPExcel = PHPExcel_IOFactory::load('1.xls'); 它需要永恒的加载,并且服务器CPU和RAM的使用像魔术树一样增长。 但是当我尝试用XLSX做同样的事情时,它就像勒布朗·詹姆斯(LeBron James)一样。 喜欢这个: $objPHPExcel = PHPExcel_IOFactory::load('1.xlsx'); PHP扩展:zip,xml,gd,xmlreader,xmlwriter,xmlrpc被安装和工作。 PHP版本5.6.12 FastCGI。

PHPExcel(和其他)在读取xlsx时缺less单元格值

我使用不同的PHP库来读取来自各种文件types的客户订单。 现在我坚持一点。 我收到xlsx文件(附件),这可能是由一些未知的软件生成的。 当我使用PHPExcel(1.8.0)读取它时,我只能得到包含数字的单元格的值 – 首先看。 正如我们所知,xlsx是一些xml文件的归档容器。 当我对这些xmls进行了一些挖掘 – 我已经了解到,我只获取了表单文件(xls / worksheets / sheet1.xml中的xlsx)中描述的单元格的值。worksheet-> sheetData-> row-> having attr “t”设置为“n”。 一般来说,这意味着价值是在这个文件。 并将attr“t”设置为“s”的标签“c” – 值在SharedStrings.xml中进行了描述。 而PHPExcel没有得到它们。 或者我做错了什么? 这里是简单的代码: $objReader = PHPExcel_IOFactory::createReader('Excel2007'); $objReader->setReadDataOnly(true); $excel = $objReader->load($file); $excel->setActiveSheetIndex(0); $data = $excel->getActiveSheet()->toArray(null, true, true, true); print_r($data); 链接到文件

如何消除在phpexcel零错误devide?

我正在使用phpexcel创buildexcel文件。但是在一些单元格中,我正在分配零错误。 所以我试图把零,而不是由零误差分开。我试图把零而不是错误与下面的代码。 $this->excel->getActiveSheet()->setCellValue('Y'.$ab,'=IFERROR(ROUND((X40*100)/X26,2),"")'); 但是单元格变为空而不是零。 所以任何人都可以请build议我我在做什么wrong.suggestions将不胜感激 谢谢。

Group_Concat将数据插入单独的单元格

我在这里挣扎了一下,我有一个group_concat ,我希望每个值被分离到一个不同的单元格,以便总单元格获得这些连接值的总和。 $this->db->select("date, reference_no, biller, customer, GROUP_CONCAT(CONCAT(" . $this->db->dbprefix('sale_items') . ".product_name) SEPARATOR '\n') as iname, GROUP_CONCAT(CONCAT(round( " . $this->db->dbprefix('sale_items') . ".quantity)) SEPARATOR '\n') as cqty, GROUP_CONCAT(TRUNCATE(CONCAT(" . $this->db->dbprefix('sale_items') . ".net_unit_price),2) SEPARATOR '\n') as unitbeforetax,GROUP_CONCAT(ROUND( CONCAT(" . $this->db->dbprefix('sale_items') . ".net_unit_price * " . $this->db->dbprefix('sale_items') . ".quantity ),2) SEPARATOR '\n') as beforetax,GROUP_CONCAT(round(CONCAT(" . $this->db->dbprefix('sale_items') . ".item_tax),2 ) […]

php excel maatwebsite给我随机的字符文件名

\Excel::create("test", function ($excel) use ($logs) { $excel->sheet('AllProjectLogHours', function ($sheet) use ($logs) { $sheet->loadView('template', array('log' => $logs)); }); })->export('xlsx'); 我正在使用Maatwebsite生成excel。 它返回我excel文件名为d45e9cfc-ed62-4422-918a-2d3ecb980131。 我也在供应商目录的Maatwebsite中检查创build和导出function。 文件名variables设置正确,但它仍然给我随机的字符文件名 任何人解决或遇到这个问题?