2012-11-23 4 views
4

자동화를 통해 워드 문서를 만들고 C# (.net4)의 office Interop를 사용하여 워드 문서를 만듭니다. 병합은 잘 작동하고 사용자는 원하는대로 작성된 문서를받습니다. 지금까지 모든 것이 잘되었습니다. 클라이언트는 생성 된 파일을 저장할 때 (파일 저장 대화 상자를 통해) 문서의 파일 이름이 이미 채워지도록 요청합니다.C# 및 자동화에서 저장하지 않고 워드 문서의 파일 이름을 설정하는 방법

나는 Document-instance 및 다른 속성의 Name 속성을 설정하는 등의 명백한 작업을 이미 시도했지만 해결책은 찾았지만 지금까지는 파일 이름을 설정할 수 없었습니다. 파일 (저장하지 않고).

누군가이 방법을 알고 있습니까? 클라이언트가 작동한다면 매우 행복 할거라 생각합니다. 또한이 작업에 많은 시간을 할애했습니다. (저는 워드 자동화가 많은 경험이없는 것을 인정해야합니다).

+0

'File.Move (oldName, newName)'? – Oded

+0

@Oded : System.IO.File.Move를 의미합니까? 예인 경우 : 파일이 아직 존재하지 않고 편지 병합의 결과이며 저장되지 않은 상태로 열립니다. 아니면 당신의 제안을 이해하지 못합니까? – HCL

+0

아니요, 올바르게 이해했습니다. 파일이 아직 존재하지 않았는지 확실하지 않았습니다. – Oded

답변

5

문서의 Title 속성을 설정하면 다른 이름으로 저장을 선택하면 해당 문서 이름이 사용됩니다. 기본 저장 위치를 ​​설정할 수도 있습니다. VBA에서

Set doc = ActiveDocument 

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

그러나 두 번째 (이상) 저장 시도에서만 작동합니다. 첫 번째 시도는 템플릿의 제목 (있는 경우) 또는 문서의 첫 번째 줄의 내용 (없는 경우)을 항상 사용합니다. 더 나은 해결 방법은이 답변의 끝 부분을 참조하십시오.

그러나 새 제목을 적용하려면 다른 이름으로 저장하기 전에 문서를 약간 변경해야합니다. ,이 표준을 엽니 다

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

대화 "다른 이름으로 저장"

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 
C#으로 HCL에 의해 언급으로

,이 코드를 사용하여 (단지 대화를위한) 기본 파일 이름을 설정할 수 있습니다 기본 파일 이름을 설정합니다 ('Title'속성에서 기대하는 것이 아닌). 대화 상자가 열립니다.

+0

'Selection.TypeText Text : = ""는 최소 변경에 관한 것입니다. 문서 끝 부분에 있는지 확인하십시오. – Fionnuala

+0

감사합니다.하지만 슬프게도이 변경 사항은 적용되지 않습니다 (Word 2010). 그러나 나는 더 많은 것을 시도 할 것입니다, 아마도 저는 실수를하고 있습니다, 저는 자동화에 상당한 멍청이입니다. – HCL

+0

이상한 점은 변경 사항이 아니라 다른 이름으로 저장을 선택하는 것입니다. 이상한. – Fionnuala

0

워드 프로세서
http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.document.saveas%28v=vs.80%29.aspx
파일 이름을 지정하거나 뭔가를 놓치고 말 것?

+0

예, 특정 파일 이름으로 저장하는 것은 문제가되지 않습니다.문제는 파일을 저장하면 안되지만 클라이언트가 ctrl-s를 누르면 파일 저장 대화 상자에 파일 이름이 미리 채워져 있어야합니다. 하지만 어쨌든 당신의 대답을 주셔서 감사합니다. – HCL

+0

다운로드 한 파일의 파일 이름을 의미하는 경우 응답 헤더 "content-disposition"을 살펴 봐야합니다. ** ** ** ** ** ** ** 당신을 정확하게 이해했으면 좋겠습니다. –