关于获取Word中不含扩展名文件名的域代码的技术咨询
获取Word中不含扩展名文件名的域代码的技术咨询
嘿,这个需求完全可以搞定!我给你分享两种实用的方法,都能帮你在页脚里插入不带扩展名的文件名,适配不同的Word版本和场景:
方法一:通用嵌套域代码(推荐)
这是最稳妥的方法,几乎支持所有Word版本,不管扩展名是什么都能自动适配:
- 打开Word文档,切换到页脚编辑模式,把光标定位到你要插入文件名的位置。
- 按下
Ctrl + F9插入一对灰色的域括号(注意:不能手动输入括号,必须用快捷键生成)。 - 在括号里输入以下完整的域代码:
{ LEFT { FILENAME \p } { =LEN({ FILENAME \p })-LEN({ FILENAME \x })-1 } } - 输入完成后,按下
F9键更新域,就能看到不带扩展名的文件名啦!
给你拆解一下这个代码的逻辑:
FILENAME \p:返回包含扩展名的完整文件名FILENAME \x:只返回文件的扩展名(比如.docx)LEN():计算字符串的字符长度- 用完整文件名的长度减去扩展名的长度,再减1(去掉分隔扩展名的那个点),最后用
LEFT()函数截取前面的部分,就得到了我们要的纯文件名。
方法二:简化版域代码(适合固定扩展名场景)
如果你的所有文档都是统一的扩展名(比如全是.docx或.doc),可以用更简单的写法:
- 同样按
Ctrl + F9插入域括号,输入:
(这里的{ LEFT { FILENAME \p } LEN({ FILENAME \p })-5 }-5对应.docx的长度:点+4个字母;如果是.doc就改成-4) - 按
F9更新域即可。
不过这个方法局限性比较大,一旦扩展名变了就会出错,所以更推荐第一种通用方法。
小提醒
- 一定要先保存文档!
FILENAME域需要文件有实际的保存路径和名称才能返回正确内容,未保存的文档会显示临时名称(比如文档1)。 - 如果之后修改了文件名或扩展名,记得选中域内容再按
F9更新一下。
备注:内容来源于stack exchange,提问作者Matthew




