office open xml序列化为tsl
Go to file
csh e954a69083 update README 2024-09-19 10:49:36 +08:00
autoclass 利用nil新特性进行性能优化 2024-09-19 10:45:33 +08:00
docx 利用nil新特性进行性能优化 2024-09-19 10:45:33 +08:00
openxml 利用nil新特性进行性能优化 2024-09-19 10:45:33 +08:00
pptx 1. 升级装饰器和适配器代码 2024-08-05 11:37:00 +08:00
utils 利用nil新特性进行性能优化 2024-09-19 10:45:33 +08:00
.gitignore Initial commit 2024-06-25 15:56:31 +08:00
README.md update README 2024-09-19 10:49:36 +08:00
cp.ps1 利用nil新特性进行性能优化 2024-09-19 10:45:33 +08:00

README.md

OfficeXml

说明

将docx、pptx、xlsx等文件中的xml转为tsl对象

<w:p w14:paraId="6E3ED3BE" w14:textId="77777777" w:rsidR="00C57A1E"
    w:rsidRDefault="00C57A1E" w:rsidP="00C27AE9">
    <w:pPr>
        <w:jc w:val="left" />
    </w:pPr>
    <w:r>
        <w:rPr>
            <w:rFonts w:hint="eastAsia" />
        </w:rPr>
        <w:t>最小申购、赎回单位</w:t>
    </w:r>
    <w:r>
        <w:rPr>
            <w:rFonts w:hint="eastAsia" />
        </w:rPr>
        <w:t>(份)</w:t>
    </w:r>
</w:p>

上述是一个docx中的段落的xml序列化为tsl过程如下

namespace "DOCX"  // 设置命名空间为DOCX
p := new P();     // 创建一个P对象段落w:p
p.Init(node);     // 假设node节点是上面的xml指向的Node对象
p.Deserialize();  // 将node对象的xml序列化到tsl对象

// 序列化完毕后,可直接对应取值
echo p.PPr.Jc.Val;      // 输出left

// 在获取存在多个节点的对象时比如上述的w:r对象是复数的则需要通过Rs()获取
// 直接调用Rs()会获取所有的R对象加上索引会获取第N+1个
echo p.Rs(1).T.Text;    // 输出:(份)

部署

将此文件夹部署到tsl解释器下的funcext即可