【问题标题】:Rewrite edited XLSX file in PHPExcel在 PHPExcel 中重写已编辑的 XLSX 文件
【发布时间】:2012-05-28 10:06:15
【问题描述】:

在这个页面中,我找到了一些代码示例,在将它们粘在一起后,我试图让它工作。页面可以读取上传的 XLSX 文件并打印表单文本字段中的每个单元格。但我不知道,如何将编辑后的信息添加到以前的相同单元格中? 请帮忙!

<?php
require_once('Classes/PHPExcel.php');
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("Ataskaita3.xlsx");
$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
echo '<form name="forma" method="post" action="'.$_SERVER['REQUEST_URI'].'">';
echo '<table border=1>' . "\n";
foreach ($objWorksheet->getRowIterator() as $row) {
  echo '<tr>' . "\n";
  $cellIterator = $row->getCellIterator();
  $cellIterator->setIterateOnlyExistingCells(false); 
  foreach ($cellIterator as $cell) {
    echo '<td><input type="text" name="laukelis" value="' . $cell->getValue() . '"/></td>' . "\n";
  }
  echo '</tr>' . "\n";
}
echo '</table>' . "\n";
echo '<input type="submit" name="submit" value="Redaguoti" />';
echo '</form>';

if(isset($_POST['submit'])){
error_reporting(E_ALL);
require_once 'Classes/PHPExcel/IOFactory.php';

$excel2 = PHPExcel_IOFactory::createReader('Excel2007');
$excel2 = $excel2->load('Ataskaita3.xlsx');
$excel2->setActiveSheetIndex(0);
$excel2->getActiveSheet()->setCellValue('A1', '4')
    ->setCellValue('A2', '5')
    ->setCellValue('A3', '6')       
    ->setCellValue('A4', '7');
$objWriter = PHPExcel_IOFactory::createWriter($excel2, 'Excel2007');
$objWriter->save('Ataskaita_redaguota.xlsx');
}else{
echo 'edit';
}
?>

【问题讨论】:

  • 我首先要确保表单中的每个单元格(输入字段)都有不同的名称
  • 所以我必须将其设为数组 laukelis[] 吗?

标签: php phpexcel xlsx


【解决方案1】:

开始于:

echo '<td><input type="text" name="' . $cell->getCoordinate() . '" value="' . $cell->getValue() . '"/></td>' . "\n";

【讨论】:

  • 我是 PHPExcel 新手,如何将所有表单值放入打开的文档? ->setCellValue..?
  • 提交表单后,循环遍历所有单元格并测试与 $cell->getCoordinate() 值匹配的表单字段...这是要存储在该单元格中的值
  • 如何打印单元格坐标?如果我回显 $_POST[$cell->getCoordinate()];我得到字段值,但如何打印该字段名称? foreach ($_POST[$cell->getCoordinate()] as $key => $value){ ?
  • 是的,我发现了。回声''。 $cell->getCoordinate() 。 '' 。 $cell->getValue() 。 '';但是如何通过循环,打印所有表单值,使用 foreach 我得到错误
  • foreach($_POST as $name =&gt; $value) { print "$name : $value&lt;br&gt;"; $excel2-&gt;getActiveSheet() -&gt;setCellValue('$name', '$value'); } 我发现这个工作 ir 打印所有值,但是当试图插入到文档中时得到这个:致命错误:未捕获的异常'异常',消息'单元格坐标不能是绝对的'。 ...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-08
  • 2015-08-02
  • 1970-01-01
  • 1970-01-01
  • 2018-11-28
相关资源
最近更新 更多