如何在php中将HTML表格导出到多个excel工作表
我正在使用php,我想将两个如何在php中将HTML表格导出到多个excel工作表,php,html,excel,phpspreadsheet,Php,Html,Excel,Phpspreadsheet,我正在使用php,我想将两个HTML表格导出到excel文件,其中包含两个表格,每个表格都有一个表格 <?php use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Reader\Html; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; $fir
HTML
表格导出到excel
文件,其中包含两个表格,每个表格都有一个表格
<?php
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Reader\Html;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
$firstHtmlString = '<table>
<tr>
<td>Hello World</td>
</tr>
</table>';
$secondHtmlString = '<table>
<tr>
<td>Hello World</td>
</tr>
</table>';
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Html();
$spreadsheet = $reader->loadFromString($firstHtmlString);
$reader->setSheetIndex(1);
$spreadhseet = $reader->loadFromString($secondHtmlString, $spreadsheet);
$filename='Users.xlsx';
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
return $writer->save('php://output');
?>
我遵循了文档,但它只创建了一张表和一张表
<?php
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Reader\Html;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
$firstHtmlString = '<table>
<tr>
<td>Hello World</td>
</tr>
</table>';
$secondHtmlString = '<table>
<tr>
<td>Hello World</td>
</tr>
</table>';
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Html();
$spreadsheet = $reader->loadFromString($firstHtmlString);
$reader->setSheetIndex(1);
$spreadhseet = $reader->loadFromString($secondHtmlString, $spreadsheet);
$filename='Users.xlsx';
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
return $writer->save('php://output');
?>
这是一个有效的版本:
require "vendor/autoload.php";
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx as xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory as io_factory;
$firstHtmlString = '<table>
<tr>
<td>Hello World</td>
</tr>
</table>';
$secondHtmlString = '<table>
<tr>
<td>Hello World</td>
</tr>
</table>';
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Html;
$spreadsheet = $reader->loadFromString($firstHtmlString);
$reader->setSheetIndex(1);
$spreadhseet = $reader->loadFromString($secondHtmlString, $spreadsheet);
$objWriter = io_factory::createWriter($spreadsheet, 'Xlsx');
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment;filename=test.xlsx");
header("Content-Transfer-Encoding: binary ");
ob_end_clean();
ob_start();
$objWriter->save('php://output');
需要“vendor/autoload.php”;
使用PhpOffice\PhpSpreadsheet\Spreadsheet;
使用PhpOffice\PhpSpreadsheet\Writer\Xlsx作为Xlsx;
使用PhpOffice\PhpSpreadsheet\IOFactory作为io_工厂;
$firstHtmlString=$
你好,世界
';
$secondHtmlString='1!'
你好,世界
';
$reader=new\PhpOffice\PhpSpreadsheet\reader\Html;
$spreadsheet=$reader->loadFromString($firstHtmlString);
$reader->setSheetIndex(1);
$spreadhseet=$reader->loadFromString($secondHtmlString,$spreadsheet);
$objWriter=io_工厂::createWriter($spreadsheet,'Xlsx');
标题(“Pragma:public”);
标题(“到期日:0”);
标头(“缓存控制:必须重新验证,后检查=0,前检查=0”);
标题(“内容类型:应用程序/强制下载”);
标题(“内容类型:应用程序/八位字节流”);
标题(“内容类型:应用程序/下载”);
标题(“内容配置:附件;文件名=test.xlsx”);
标题(“内容传输编码:二进制”);
ob_end_clean();
ob_start();
$objWriter->save('php://output');
问题在于读者说你只做一张
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Html;
$spreadsheet = $reader->loadFromString($firstHtmlString);
$reader->setSheetIndex(1);
必须添加具有不同输入的不同图纸
$myWorkSheet1 = new \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet($spreadsheet, 'My Data');
$spreadsheet->addSheet($myWorkSheet1, 0);
$myWorkSheet2 = new \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet($spreadsheet, 'My Data');
$spreadsheet->addSheet($myWorkSheet2, 1);
请参阅文档是否出现错误?错误是什么?没有错误。它只是一张桌子一张床单。。文件里没有两张纸。对不起。。它不起作用。。它只有一张纸而不是两张纸。。同样的问题,我测试了它并开始工作,所以这是你的休息。请尝试重新安装。我不明白你的代码!!。$secondHtmlString
变量在哪里?是的,它可以创建两个工作表
,但其中一个工作表中有表格,另一个为空。您需要创建两个不同的工作表。然后把它们填入你的代码中,你可以创建一个工作表,然后覆盖这个工作表。我还是不明白!!。是,已添加两张工作表。。但是空的。如何为第一张图纸指定数据,为第二张图纸指定不同的数据?