首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在PhpSpreadsheet中读取多个文件

在PhpSpreadsheet中,可以使用PhpOffice\PhpSpreadsheet\IOFactory类的load()方法来读取多个文件。该方法接受一个文件路径数组作为参数,可以将多个文件加载到同一个工作簿中。

下面是一个示例代码:

代码语言:txt
复制
use PhpOffice\PhpSpreadsheet\IOFactory;

// 文件路径数组
$files = [
    'path/to/file1.xlsx',
    'path/to/file2.xlsx',
    'path/to/file3.xlsx'
];

// 创建一个新的工作簿
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();

// 循环遍历文件路径数组,逐个读取文件并合并到工作簿中
foreach ($files as $file) {
    $reader = IOFactory::createReaderForFile($file);
    $reader->setReadDataOnly(true);
    $worksheet = $reader->load($file);
    $spreadsheet->addSheet($worksheet->getActiveSheet());
}

// 设置活动表单为第一个工作表
$spreadsheet->setActiveSheetIndex(0);

// 获取合并后的工作簿的数据
$data = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);

// 打印数据
foreach ($data as $row) {
    foreach ($row as $cell) {
        echo $cell . "\t";
    }
    echo "\n";
}

在上述示例代码中,我们首先创建了一个新的工作簿对象 $spreadsheet。然后使用 IOFactory::createReaderForFile() 方法根据文件路径创建一个读取器对象 $reader,并设置 setReadDataOnly(true) 以只读取数据而不包括格式和公式。

接下来,我们使用 load() 方法逐个读取文件并将其加载到工作簿中,使用 addSheet() 方法将每个文件的工作表添加到工作簿中。

最后,我们使用 $spreadsheet->getActiveSheet()->toArray() 方法获取合并后的工作簿的数据,并使用 foreach 循环将数据打印出来。

请注意,上述示例中并未提及腾讯云相关产品,如有需要请参考腾讯云文档或咨询腾讯云官方支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券