[英]Write in a Excel file with PHPExcel
好吧,我想使用PHP脚本在Excel文件中编写。 实际上,当用户提交表单时,我们会收到邮件和当前日期,以便将其放入Excel。
邮件必须在一栏中,日期也必须在一栏中。
这是我的表格(经典表格):
<form action="mail.php" method="POST">
<label for="name">Nom*<br />
<input id="name" type="text" name="Nom" />
</label><br /><br />
<label for="mail">Mail*<br />
<input id="mail" type="email" name="Email" />
</label><br /><br />
<label for="tel">Téléphone*<br />
<input id="tel" type="text" name="Téléphone" />
</label><br /><br />
<label for="comment">Commentaire*<br />
<textarea id="comment" type="text" name="Commentaires"> </textarea>
</label><br /><br />
<input type="submit" value="Envoyer" />
</form>
还有我的mail.php,所以这里是我使用PHPExcel类的地方:
<?php
/** Error reporting */
error_reporting(E_ALL);
/** PHPExcel */
include './Classes/PHPExcel.php';
/** PHPExcel_Writer_Excel2007 */
include 'PHPExcel/Writer/Excel2007.php';
include './Classes/PHPExcel/IOFactory.php';
/* Set the variables */
$mail = $_POST['Email'];
// Line number
$ligne = 1;
// Excel object
$fichier = new PHPExcel();
$fichier->getProperties()->setCreator("Don't know");
//Set the size
$fichier->getActiveSheet()->getColumnDimension('A')->setWidth(30);
$fichier->getActiveSheet()->getColumnDimension('B')->setWidth(30);
$fichier->setActiveSheetIndex(0);
$feuille = $fichier->getActiveSheet();
function writeExcel($objExcel, $sheet, $email){
$sheet->SetCellValue('A'.$ligne, $email);
$sheet->SetCellValue('B'.$ligne, date("Y-m-d H:i"));
$objWriter = new PHPExcel_Writer_Excel2007($objExcel);
$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
$ligne++;
}
writeExcel($fichier, $feuille, $mail);
?>
我认为这是行号是一个问题,我不知道如何组织我的代码。 每次用户提交表单时,我们都将其邮件(单元格A1)和当前日期(单元格B1)放入,下一封邮件必须在A2单元格中,依此类推...
我不知道你是否知道我的意思^^
编辑用注释,我修改了我的代码! 但这是一样的^^
<?php
/** Error reporting */
error_reporting(E_ALL);
/** PHPExcel */
include './Classes/PHPExcel.php';
/** PHPExcel_Writer_Excel2007 */
include 'PHPExcel/Writer/Excel2007.php';
include './Classes/PHPExcel/IOFactory.php';
/* Set the variable */
$mail = $_POST['Email'];
// Load file if it doesn't exists
if (file_exists("mail.xlsx"))
{
$fichier = PHPExcel_IOFactory::load("mail.xlsx");
}
else
{
$fichier = new PHPExcel();
}
// Line number
$ligne = $fichier->getActiveSheet()->getHighestRow() + 1;
// Excel object
$fichier->getProperties()->setCreator("Don't know");
//Set the size
$fichier->getActiveSheet()->getColumnDimension('A')->setWidth(30);
$fichier->getActiveSheet()->getColumnDimension('B')->setWidth(30);
$fichier->setActiveSheetIndex(0);
$feuille = $fichier->getActiveSheet();
// Line number
global $ligne = $fichier->getActiveSheet()->getHighestRow() + 1;
function writeExcel($objExcel, $sheet, $email){
$sheet->SetCellValue('A'.global $ligne, $email);
$sheet->SetCellValue('B'.global $ligne, date("Y-m-d H:i"));
$objWriter = new PHPExcel_Writer_Excel2007($objExcel);
$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
global $ligne++;
}
writeExcel($fichier, $feuille, $mail);
?>
最后编辑(我希望)好了,:D
这是我的代码:
<?php
/** Error reporting */
error_reporting(E_ALL);
/** PHPExcel */
include './Classes/PHPExcel.php';
/** PHPExcel_Writer_Excel2007 */
include 'PHPExcel/Writer/Excel2007.php';
include './Classes/PHPExcel/IOFactory.php';
/* Set the variable */
$mail = $_POST['Email'];
// Load file if it doesn't exists
if (file_exists('mail.xlsx'))
{
$objExcel = PHPExcel_IOFactory::load('mail.xlsx');
}
else
{
$objExcel = new PHPExcel();
}
$objExcel->getProperties()->setCreator("Don't know");
//Set the size
$objExcel->getActiveSheet()->getColumnDimension('A')->setWidth(30);
$objExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30);
$objExcel->setActiveSheetIndex(0);
$sheet = $objExcel->getActiveSheet();
// Line number
$line = $objExcel->getActiveSheet()->getHighestRow() + 1;
/*
This function write in the Excel file.
Note that the variables are passed by reference.
*/
function writeExcel(&$objExcel, &$sheet, $email, &$line){
$sheet->SetCellValue('A'.$line, $email);
$sheet->SetCellValue('B'.$line, date("Y-m-d H:i"));
$objWriter = new PHPExcel_Writer_Excel2007($objExcel);
$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
}
writeExcel($objExcel, $sheet, $mail, $line);
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.