label305 / xlsx-extractor
PHP 库,用于提取和替换 .xlsx 文件中的字符串数据。
Requires
- php: ^8.0
- ext-dom: *
- ext-libxml: *
- ext-zip: *
Requires (Dev)
- phpunit/phpunit: ^9.5
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' );
高级用法
此库还配备了 DecoratedTextExtractor
和 DecoratedTextInjector
,您可以使用它来操作基本的段落样式,如加粗、斜体和下划线。您还可以使用 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
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”提供,不提供任何明示或暗示的保证或条件。有关许可证的具体语言规定权限和限制,请参阅许可证。