2

客观的

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

  • 必须包括单元格样式,例如着色
  • 必须包含图像(徽标)
  • 必须包括标准数据,例如公司地址

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

问题一:

有没有办法使用模板文件?或者你知道任何替代方案吗?

问题 B

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

例子

$data = $_POST['example'];

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

1 回答 1

3

我不是 100% 确定,但根据 PhpSpreadsheet 的文档,您可以使用以下命令读取本地文件(您的预制模板):

$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
  • 从数据库
于 2018-02-15T09:19:10.847 回答