label305/xlsx-extractor

PHP 库,用于提取和替换 .xlsx 文件中的字符串数据。

0.2.4 2024-04-30 12:25 UTC

This package is auto-updated.

Last update: 2024-08-30 13:20:17 UTC


README

PHP 库,用于提取和替换 .xlsx 文件中的字符串数据。pptx 文件是包含 XML 文档和资源的 zip 归档。它们的格式由 OOXML 描述。此库仅操作 xl/sharedStrings.xml 文件。

Composer 安装

"require": {
    "label305/xlsx-extractor": "0.2.*"
}

需求

  • PHP 8.0
  • PHP ext-dom
  • PHP ext-zip
  • PHP ext-libxml

基本用法

导入基本类。

use Label305\XlsxExtractor\Basic\BasicExtractor;
use Label305\XlsxExtractor\Basic\BasicInjector;

首先,我们需要从现有的 xlsx 文件中提取所有内容。这可以通过使用 BasicExtractor 完成。调用 extractStringsAndCreateMappingFile 将创建一个新文件,其名称作为第二个参数传入。这个新文件包含引用,以便库知道稍后如何将更改后的文本注入回去。

$extractor = new BasicExtractor();
$mapping = $extractor->extractStringsAndCreateMappingFile(
    'simple.xlsx',
    'simple-extracted.xlsx'
  );

现在,您已经提取了内容,可以检查结果 $mapping 数组的内容。如果您想更改内容,可以简单地修改它。数组键映射到 simple-extracted.xlsx 中的符号。

echo $mapping[0]; // Slide number one

现在,在更改了内容之后,您可以将其保存回新文件。在这种情况下,该文件是 simple-injected.xlsx

$mapping[0] = "Slide number one";

$injector = new BasicInjector();
$injector->injectMappingAndCreateNewFile(
    $mapping,
    'simple-extracted.xlsx',
    'simple-injected.xlsx'
  );

高级用法

此库还配备了 DecoratedTextExtractorDecoratedTextInjector,您可以使用它来操作基本的段落样式,如加粗、斜体和下划线。您还可以使用 SharedString 对象来区分文本的逻辑分组。

$extractor = new DecoratedTextExtractor();
$mapping = $extractor->extractStringsAndCreateMappingFile(
    'markup.xlsx',
    'markup-extracted.xlsx'
  );
  
$firstSharedString = $mapping[0]; // SharedString object
$firstSharedStringPart = $firstParagraph[0]; // SharedStringPart object

$firstSharedStringPart->italic = true;
$firstSharedStringPart->bold = false;
$firstSharedStringPart->underline = true;

echo $firstSharedStringPart->text; // The quick brown fox jumps over the lazy dog
$firstSharedStringPart->text = "Several fabulous dixieland jazz groups played with quick tempo.";

$injector = new DecoratedTextInjector();
$injector->injectMappingAndCreateNewFile(
    $mapping,
    'markup-extracted.xlsx',
    'markup-injected.xlsx'
  );

许可协议

版权所有 2020 Label305 B.V.

根据 Apache 许可证 2.0 版(“许可证”);除非遵守许可证,否则您不得使用此文件。您可以在以下地址获得许可证副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”提供,不提供任何明示或暗示的保证或条件。有关许可证的具体语言规定权限和限制,请参阅许可证。