Xslt Office Open XML文件名字段

Xslt Office Open XML文件名字段,xslt,ms-word,Xslt,Ms Word,我正在使用XSLT来转换文档并动态创建word文档。根据文档,我可以使用以下内容将当前文件名输入到我的文档中: <w:fldSimple w:instr="FILENAME"> <w:r> <w:rPr> <w:noP

我正在使用XSLT来转换文档并动态创建word文档。根据文档,我可以使用以下内容将当前文件名输入到我的文档中:

                        <w:fldSimple w:instr="FILENAME">
                            <w:r>
                                <w:rPr>
                                    <w:noProof/>
                                </w:rPr>
                                <w:t>DEFAULT NAME</w:t>
                            </w:r>
                        </w:fldSimple>

默认名称
文档在字段定义中似乎自相矛盾,实际上不支持
FILENAME
(它不在列表中,显然不起作用)。当我使用相同的逻辑块和
TIME
而不是
FILENAME
时,每次打开文档时,时间字段都会自动更新。是否有其他方法获取文档的当前文件名


看起来它也应该得到支持。

多亏了@Cindy Meister,我发现我的文档没有在open上更新,但
FILENAME
得到了预期的支持。当我加上


w:dirty=“true”
对于我的
fldSimple
我在打开word文档(安全协议)时会得到提示,
FILENAME
正确更新。

打开文档时,某些(极少数)字段类型会自动更新。其他需要显式更新。您可以在OpenXMLDocument中写入一个设置,该设置将触发更新,但需要用户确认提示(安全考虑)。我目前使用移动设备,无法为您提供此设置的确切名称…>是否有其他方法获取文档当前文件名?不确定您的意思有多“不同”,但在VBA即时窗口中键入
?ActiveDocument.FullName
将告诉您路径和文件名,您还可以使用.Net、py、,。。。而不是VBA@CindyMeister,我会研究一下的,谢谢。@SlowLearner,对不起,我的意思不同,因为使用相同的技术(我希望我只是在文档中遗漏了一些东西)是的,就是这样:-)另一种方法是使用Word Automation Services(SharePoint的一部分)在将文档传递给用户之前打开文档。