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

时间:2018-01-09 15:15:14

标签: phpspreadsheet

目标

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

  • 必须包含细胞样式,例如着色
  • 必须包含图片(徽标)
  • 必须包含公司地址等标准数据

我读过有关cfspreadsheet的内容,但我不完全确定如何使用它。

问题A:

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

问题B

是否可以在此库中使用$ _POST数据?

示例

$data = $_POST['example'];

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

1 个答案:

答案 0 :(得分:2)

我不是百分百肯定,但根据PhpSpreadsheet的doc,您可以阅读本地文件(预制模板):

decimal? chargesSoFar = null;
// other codes here
chargesSoFar = (decimal?)command.ExecuteScalar();

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

$inputFileName = './sampleData/example1.xls';

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

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

然后你只需要像填充你创建的电子表格一样进行更改,使用php从几乎所有的地方填充数据,例如:

  • 经典变量$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);
  • $foo = 'bar'; / $_GET / $_POST
  • 来自数据库