Tag: PHP的

PHPExcel – 从数组中填充数据

到目前为止,我已经通过PHPExcel成功地将Mysql中的数据导出到Excel中,制作了我的表格,并进行了格式化处理,而且一切都很顺利。 然而,迄今为止,从所述表格制作图表的尝试都失败了。 不仅如此,在Googlesearch结束之后的几天,我还没有find一个简单的示例/教程来介绍如何从MySQL中填充graphics值。 这一切归结为: Taken from https://github.com/affinitybridge/phpexcel/blob/master/Tests/33chartcreate-pie.php /** PHPExcel */ include 'PHPExcel.php'; $objPHPExcel = new PHPExcel(); $objWorksheet = $objPHPExcel->getActiveSheet(); $objWorksheet->fromArray( array( array('', 2010, 2011, 2012), array('Q1', 12, 15, 21), array('Q2', 56, 73, 86), array('Q3', 52, 61, 69), array('Q4', 30, 32, 0), ) ); 我该如何从a)Mysql或b)excel中填充$ objWorksheet-> fromArray。 如果是SQL,我需要为我的数据库中的所有表运行这个查询。 $ sql =“SELECT Functional_Area , Passed__Status , Blocked__Status […]

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 […]

将ASCII标签编码到PHP的QR条码中,以便MS Excel可以读取它

我一直在使用PHP QR码( http://phpqrcode.sourceforge.net/ )来创buildQR条码。 每个条形码包含几个不同的信息,我连接成一个单一的string。 我这样做的原因是因为我必须打印的标签太小,不能为每条信息制作单独的条形码。 $PartNumber = '12345'; $UIN = 'ABCD'; $IMEI = 00001; $WHSE = 'AAA'; $Barcode = $PartNumber.$UIN.$IMEI.$WHSE; QRcode::png($Barcode, 'Barcode.png'); 这部分工作得很好。 我打印条码,然后扫描到Excel,我得到一个string,读取“12345ABCD00001AAA”。 我想要做的是把Tab键的ASCII代码放在每个variables之间,这样当我扫描条形码到Excel中时,每个variables都会在不同的列中。 $PartNumber = '12345'; $UIN = 'ABCD'; $IMEI = 00001; $WHSE = 'AAA'; $Barcode = $PartNumber.'\09'.$UIN.'\09'.$IMEI.'\09'.$WHSE; QRcode::png($Barcode, 'Barcode.png'); 所以结果是Cell A1 ='12345',B1 ='ABCD',C1 ='00001',D1 ='AAA'。 但是,当我扫描条形码到Excel的整个string被放置在单元格A1。 我可以听到Excel的兴奋,好像它不喜欢ASCII值,然后似乎忽略它。 我宁愿不必使用Excel中的代码来分隔基于我添加的分隔符的string。 有谁知道我可以如何将每个variables放到它自己的列中,或者甚至可以做到这一点?

通过Cron工作每天发送电子邮件与数据库csv / xls或xml文件备份使用PHP在Linux服务器

这是我第一次尝试设置Cron Job。 我需要你的帮助。 我有db数据到csv / xls文件,但我不知道如何设置cron作业一次,每天通过这个文件通过电子邮件与数据。 带数据的数据库表 DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` int(11) NOT NULL auto_increment, `name` varchar(32) NOT NULL, `major` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ; — — Dumping data for table `student` — INSERT INTO `student` VALUES (1, 'John', 'Computer Science'); INSERT […]

点击button下载文件并导出到Excel

(1) 表:学生 (2) functions.php <?php function DisplaySearchStudentSummaryForm() { ?> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <table class="displaytable"> <tr> <td width="150" class="dtdr" align="right">Student Name : </td> <td width="450" class="dtd"><input type="text" name="studentname" size="30"/></td> </tr> </table> <table> <tr align="center" valign="top"> <td width="300"><input type="submit" name="submit" value="Export" class="buttons"></td> <td width="300"><input name="reset" type="reset" id="reset" value="Reset" class="buttons"></td> </tr> </table> </form> <?php } […]

'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 ,我可以看到它肯定会尝试处理,但是这不应该这不是一个问题,因为这是一个相对简单的参考。

执行Oracle函数将数据导出到Excel文件“使用从PHP5实时生成Excel文档”

function EXCEL_PER_GET( TABLE_ID_in number, TABLE_N_IN NUMBER, NAME_TYPE_in number) return varchar2 as CURSOR CUR IS select * from PER_DATA_Vw where TABLE_ID= TABLE_ID_in and TABLE_N=TABLE_N_IN and NAME_TYPE = NAME_TYPE_in order by NAME_TYPE; data_V varchar2(22000); dt_fm_v varchar2(2000); cnt number:=0; begin data_V:=',,,,,,'; FOR REC IN CUR LOOP ….. … END LOOP; 在PHP文件中: public function ToExcel(){ // load library require […]

将variables二传递给控制器

这是我的控制器代码: public function search_records() { if($this->session->userdata('logged_in')) { $data = array ( 'employeeName' => $this->input->post('employeeName'), 'userID' => $this->input->post('userID'), 'date' => $this->input->post('date'), 'timeSelect' => $this->input->post('timeSelect'), 'error_message' => 'Sorry there is no record !' ); if($data['employeeName'] !== '' OR $data['userID'] !== '') { if(isset($data['date'])) { if($data['timeSelect'] == 1) { $data['time1'] = '00:00:00'; $data['time2'] = '23:59:00'; $result_from_db= $this->mrecord->search_by_id_or_name_with_date($data); if($result_from_db […]