ワークシートに対応する XML ファイルでは、セルは次のようなエンティティです。
<c r="A2" t="n">
<v>18.999</v>
</v>
- 属性
r
は、ワークシート内のセルのアドレスです。
- セルに格納される値の属性
t
タイプ (n = 数値、s = 文字列、b = ブール値)。「n」は既定値です。
-
エンティティ
<v>
には、数値またはブール値の場合、フォーマットされていない値が含まれます。ただし、文字列の場合は<v>
、ファイル "xl/sharedStrings.xml" に格納されている文字列のインデックス値が含まれます。
したがって、問題は次のような組み合わせを置き換えることです:
ファイル「xl/worksheets/sheet1.xml」:
<c r="A2" t="s">
<v>29</v>
</c>
ファイル「xl/sharedStrings.xml」:
<sst>
...
<si><t>placeholder_1</t></si> // 29th entity
...
</sst>
と :
ファイル「xl/worksheets/sheet1.xml」:
<c r="A2" t="n">
<v>100001</v>
</c>
したがって、プレースホルダーとセルの種類を変更するには、次のことを行う必要があります。
"sharedStrings.xml"
プレースホルダーが配置されているエンティティのインデックスを検索し<si>
ます (インデックスの値は では明示されていません"sharedStrings.xml"
)。
- このインデックスを含むエンティティを
"sheet1.xml"
検索します。<v>
<v>
このエンティティの値をフォーマットされていない数値に置き換えます。
- 親
<c>
エンティティの属性を"n"
(または属性を削除してt="s"
) 置き換えます。
良いニュースは次のとおりです。
- 未使用の共有文字列を に残すことができ
"xl/sharedStrings.xml"
ます。これによりエラーが発生することはありません。
- 文字列値が含まれているセルに数値書式を適用できます
placeholder_1
。この数値形式は保持され、セル タイプを変更するときに数値に適用されます。
PHP を使用したい場合は、Excel ワークシートのテキスト プレースホルダーを置き換え、必要に応じてセル タイプを変更する機能を提供するOpenTBSという優れたライブラリ呼び出しがあります。OpenTBS は、Ms Office および LibreOffice を操作するための TinyButStrong テンプレート エンジンのプラグインです。