2017-03-14 14 views
0

자동으로 업데이트해야하는 많은 링크가 포함 된 .ods 파일이 있습니다. Macros 또는 libreoffice 명령 인수를 사용하여 쉽게이 작업을 수행 할 수있는 방법이 없으므로 파일을 열 때 모든 링크를 업데이트하려고 시도하고 파일을 저장하고 종료합니다.Libreoffice - 열 때 링크가 자동으로 업데이트됩니까?

모든 링크는 자동으로 업데이트 할 수 있어야하며 (편집> 링크에서 설정해야하는) DDE 링크이며, 도구> 옵션> Calc> 일반> 열 때 링크 항상 업데이트, 도구> 옵션> 계산> 수식> 항상 다시 계산을 선택합니다. 그러나 아직 열 때 수동으로 링크를 업데이트하는 팝업 메시지가 표시되며 업데이트를 선택하지 않으면 링크가 최신이 아닙니다. 자동으로 업데이트하려면이 DDE 링크가 필요합니다. 왜이 기능이 작동하지 않습니까?

거기에 해결책이 없다면 파이썬을 통해 링크를 업데이트하려고합니다. Uno는 libreoffice와 함께 openpyxl과 같은 파일에 기존 그래프를 망가 뜨리지 않고 작업합니까?

+0

셀 수식이란 -'DDE ("soffice", "c : \ users \ username \ desktop \ 1.ods" , "Sheet1.A1")'또는'= 'file : /// C : /Users/username/Desktop/1.ods'# $ Sheet1.A2' 또는 '{='file : /// C :/Users /username/Desktop/1.ods '# $ Sheet1.A3}'? DDE는 여러 가지 다른 것을 의미 할 수 있습니다. –

+1

첫 번째 : "DDE ("soffice ","file : ///Users/crushendo/Desktop/Folder/Report-Data.xlsx ","Weekly Report.A1 ")" – crushendo

+1

DDE 링크를 업데이트하는 코드가 있습니다. 하지만 API는 파일을 열 때 프롬프트를 표시하지 않는 메서드를 제공하지 않습니다.이 코드는 "문서 열기"이벤트에서 코드를 실행하려고했습니다. 그래서 운이 좋지 않을 것입니다. 실제 값을 원한다면 "예"라고 대답해야합니다. – ngulam

답변

0

API는 파일을 열 때 프롬프트를 표시하지 않는 방법을 제공하지 않습니다!

"문서 열기"이벤트에서 DDE 링크를 업데이트하기 위해 StarBasic 코드를 실행 해 보았지만 질문이 계속 나타납니다.

그래서 운이 좋았을 것입니다. 실제 값을 원한다면 "예"라고 대답해야합니다.

+0

글쎄 그건 끔찍한거야. 찾은 헤드리스 모드에서 해결 방법이 있습니까? 아니면 사람이 입력하지 않고 링크를 업데이트하는 다른 방법이 있습니까? 자동 타이머 프로그램에서 링크를 업데이트해야합니다. 솔루션으로 pyoo를 조사했지만 라이브러리가 Uno 라이브러리 의존성 문제가 있습니다. – crushendo

0

이 (헤드리스 모드)를 CALC 문서의 DDE 링크

Sub autoupdate_DDE 
' 20170314 
' load library with help function 
GlobalScope.BasicLibraries.LoadLibrary("Tools") 
' get all DDE links of document ' 
dde_links = ThisComponent.DDELinks 
' get array of names ' 
aEN = dde_links.getElementNames() 
' work on every DDE link ' 
for i = 0 to UBound(aEN()) 
    xTF = dde_links.getByName(aEN(i)) 
    xTF.refresh() 
Next 
End Sub 
를 업데이트하려면,이 코드를 시도

는 [@Jim K에 의해 제안, 답변을 여기에 다시 영업 이익의 질문에 대한 코멘트를 게시]

참고 :이 스 니펫은 CALC 전용이며, WRITER는 DDE 링크에 textfield을 사용합니다.

[코드 포맷을 사용하려면 다른 대답으로 제공됩니다. 코드 색상 화를 유지하기 위해 주석 끝 부분에 작은 따옴표 문자열을 추가했습니다.