PHPExcel如何在每周例行程序中自动创建新的excel文件?

问题描述 投票:0回答:1

在我的网站上,当用户填写数据时会有一个表格,数据将被写入.xls文件并存储在我的电脑中。但是,所有数据都存储在一个.xls文件下,该文件最终将变得很长且不整洁。我想让我的系统每周生成一个新的.xls文件,以便可以按周存储数据。

这是我当前的代码,我想知道有什么方法可以实现它吗?谢谢!

$objPHPExcel = PHPExcel_IOFactory::load("hii.xls");
$objPHPExcel->setActiveSheetIndex(0);
   $objPHPExcel->getActiveSheet()->setCellValue('A1','Name of Stakeholder(s)');
      $objPHPExcel->getActiveSheet()->setCellValue('B1','NRIC No./Passport No./Company No.');
      $objPHPExcel->getActiveSheet()->setCellValue('C1','Email');
      $objPHPExcel->getActiveSheet()->setCellValue('D1','Contact Number');
      $objPHPExcel->getActiveSheet()->setCellValue('E1','CDS Account No.');
      $objPHPExcel->getActiveSheet()->setCellValue('F1','Correspondence Address');
      $objPHPExcel->getActiveSheet()->setCellValue('G1','Date Submitted');

$row = $objPHPExcel->getActiveSheet()->getHighestRow()+1;
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$row, $_POST['name']);
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$row, $_POST['ic']);
$objPHPExcel->getActiveSheet()->SetCellValue('C'.$row, $_POST['email']);
$objPHPExcel->getActiveSheet()->SetCellValue('D'.$row, $_POST['phone']);
$objPHPExcel->getActiveSheet()->SetCellValue('E'.$row, $_POST['cds']);
$objPHPExcel->getActiveSheet()->SetCellValue('F'.$row, $_POST['address']);
$objPHPExcel->getActiveSheet()->SetCellValue('G'.$row, $_POST['date']);
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
      $from = "A1";
      $to = "G1";
$objPHPExcel->getActiveSheet()->getStyle("$from:$to")->getFont()->setBold(true);
$objWriter->save('hii.xls'); 
php html phpexcel
1个回答
0
投票

您可以使用DateTime()进行存档,以确定一年中的当前星期。

然后应该看起来像下面。

// Get the current week of year
$date = new DateTime('now');
$week = $date->format("W");

// Path to the file storage (in this case the same folder as this script)
$path = __DIR__;

// Set file name for excel file and combine with the path
$file = $path . '/week-' . $week . '.xls';

// Determine if file exists
if (!is_file($file) {
    // File doesn't exists, so we create a new file
    $objPHPExcel = new PHPExcel();
} else {
    // File exists, so we load this file
    $objPHPExcel = PHPExcel_IOFactory::load($file);
}

// Your existing code to write the data
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1','Name of Stakeholder(s)');
$objPHPExcel->getActiveSheet()->setCellValue('B1','NRIC No./Passport No./Company No.');
$objPHPExcel->getActiveSheet()->setCellValue('C1','Email');
$objPHPExcel->getActiveSheet()->setCellValue('D1','Contact Number');
$objPHPExcel->getActiveSheet()->setCellValue('E1','CDS Account No.');
$objPHPExcel->getActiveSheet()->setCellValue('F1','Correspondence Address');
$objPHPExcel->getActiveSheet()->setCellValue('G1','Date Submitted');

$row = $objPHPExcel->getActiveSheet()->getHighestRow()+1;
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$row, $_POST['name']);
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$row, $_POST['ic']);
$objPHPExcel->getActiveSheet()->SetCellValue('C'.$row, $_POST['email']);
$objPHPExcel->getActiveSheet()->SetCellValue('D'.$row, $_POST['phone']);
$objPHPExcel->getActiveSheet()->SetCellValue('E'.$row, $_POST['cds']);
$objPHPExcel->getActiveSheet()->SetCellValue('F'.$row, $_POST['address']);
$objPHPExcel->getActiveSheet()->SetCellValue('G'.$row, $_POST['date']);
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$from = "A1";
$to = "G1";
$objPHPExcel->getActiveSheet()->getStyle("$from:$to")->getFont()->setBold(true);

// Save the excel file
$objWriter->save($file);
© www.soinside.com 2019 - 2024. All rights reserved.