使用现有电子表格作为模板 PHPspreadsheet

Using an existing spreadsheet as a template PHPspreadsheet

Objective

我想使用现有的 Excel sheet 作为模板来创建发票。

我读过一些关于 cfspread 的文章sheet,但我不太确定如何使用它。

问题一:

有没有办法使用模板文件?或者您知道其他选择吗?

问题B

这个库可以使用 $_POST 数据吗?

例子

$data = $_POST['example'];

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', '$data');

我不是 100% 确定,但根据 PhpSpreadsheet 的 doc,您可以使用 :

读取本地文件(您的预制模板)
$inputFileName = './sampleData/example1.xls';

/** Load $inputFileName to a Spreadsheet Object  **/
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);

或者如果您已经知道文件类型(.xlsx 或 .xsl):

$inputFileType = 'Xls'; // Xlsx - Xml - Ods - Slk - Gnumeric - Csv
$inputFileName = './sampleData/example1.xls';

/**  Create a new Reader of the type defined in $inputFileType  **/
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
/**  Load $inputFileName to a Spreadsheet Object  **/
$spreadsheet = $reader->load($inputFileName);

如果需要,您也可以将所有这些都包装在一个 try catch 中。

然后您只需按照与填充您创建的电子表格相同的方式进行更改,用您从几乎想要的地方获得的数据填充单元格 php,示例:

  • 经典变量$foo = 'bar';
  • $_GET / $_POST / $_REQUEST
  • 来自数据库