gpt4 book ai didi

.net - 如何设置Word文档的文件名而不从C#和自动化保存它

转载 作者:行者123 更新时间:2023-12-02 05:36:37 25 4
gpt4 key购买 nike

我通过 C# (.net4) 的 Office Interop 自动化和邮件合并创建 Word 文档。合并效果很好,用户收到了他想要的创建的文档。到目前为止一切都很好。客户端现在请求,如果他尝试保存生成的文件(通过保存文件对话框),则文档的文件名已预先填充。

我已经尝试过一些明显的事情,例如设置文档实例的 Name 属性和其他属性,我也搜索了解决方案,但到目前为止,我无法设置 word 文件的文件名(不保存)。

有人知道如何实现这一目标吗?我觉得如果可行的话客户会很高兴,而且我也已经在这上面花了很多时间(我不得不承认文字自动化是我没有太多经验的东西)。

最佳答案

如果您设置文档的“标题”属性,则当您选择“另存为”时,这就是将使用的文档名称。您还可以设置默认保存位置。在VBA中

Set doc = ActiveDocument

sTitle = doc.BuiltInDocumentProperties("Title").Value
doc.BuiltInDocumentProperties("Title").Value = "A different title"

但是,这只适用于第二次(及以后)保存尝试。第一次尝试将始终使用模板中的标题(如果有)或文档第一行的内容(如果没有)。请参阅此答案的末尾以获得更好的解决方案。

但是请注意,您必须在“另存为”之前对文档进行一些更改才能使新标题生效。

Sub SetSummaryInfo()
Dim dp As Object
Dim sTitle As String
If Documents.Count > 0 Then
Set dp = Dialogs(wdDialogFileSummaryInfo)
' Retrieve value of "Title" into a variable.
sTitle = dp.Title
' Set "Title" to a new value.
dp.Title = "My Title"
' Set the value without showing the dialog.
dp.Execute
' Save the changes
'ActiveDocument.Save
End If
End Sub

正如 HCL 在 C# 中所说,您可以使用以下代码设置默认文件名(仅适用于对话框):

dynamic dialog = wordApp.Dialogs[WdWordDialog.wdDialogFileSummaryInfo]; 
dialog.Title = "MyTitle";
dialog.Execute();

这将打开标准的“另存为”对话框,设置默认文件名(不是您期望的“标题”属性,但这就是它的作用),然后打开该对话框。

关于.net - 如何设置Word文档的文件名而不从C#和自动化保存它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13532057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com