首先让我来描述一下这个问题。我有这个应用程序打开word文档并更新所有字段,然后将文档保存在另一个文件夹中。 word文档仅用作报告的模板。它充满了excel工作表中的链接内容。整个应用程序工作,但问题是excel文档受密码保护。当我更新文档字段时,应用程序停止并且word要求输入密码。
当你输入密码时,程序按照宣传的方式工作,你必须多次插入它,不知道为什么。但该程序假设在没有用户输入的情况下自主工作。有没有办法说出密码,以便不必通过代码或word文档属性输入密码。
下面是我目前执行此操作的代码,它在C#中
Microsoft.Office.Interop.Word.Application ap = new Microsoft.Office.Interop.Word.Application();
Document doc = ap.Documents.Open(template, ReadOnly: false, Visible: false);
doc.Activate();
red_debug.AppendText("opening " + template + "\n");
doc.Fields.UpdateSource();
doc.Fields.Update();
red_debug.AppendText("Saving as " + final + "\n");
doc.SaveAs(final, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument);
doc.SaveAs(path + "\\" + name, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF);
red_debug.AppendText("Closing word" + "\n");
doc.Close();
ap.Quit();
答案 0 :(得分:0)
答案 1 :(得分:0)
每次打开时,获取Word文档以打开Excel文件(带密码)。同时,我们也可以从Word成功关闭Excel文件。
将其放入Word宏区域。
Private Sub Document_Open()
Dim xlApp As Object
Dim xlWB As Object
Dim myRange
Application.DisplayAlerts = wdAlertsNone
Set xlApp = CreateObject("Excel.Application")
Set xlWB = xlApp.Workbooks.Open("C:\ExcelFile.xls", , , , "password", "password")
Set myRange = Selection.Range
Selection.WholeStory
Selection.Fields.Update
myRange.Select
xlApp.Quit
Set xlWB = Nothing
Set xlApp = Nothing
Application.DisplayAlerts = wdAlertsAll
End Sub
这将打开excel文档并更新word文档中的所有字段,并且不应该要求您输入密码