簡體   English   中英

如何以編程方式在 LibreOffice Calc 中觸發 AutoFit / SetOptimalHeight?

[英]How to trigger AutoFit / SetOptimalHeight in LibreOffice Calc programmatically?

我正在使用 unoconv 轉換 XLSX => PDF。我需要 LibreOffice 來換行文本並根據 XLSX 文件的內容動態增加行高。 有沒有辦法以編程方式執行此操作,也許在 unoconv/soffice 級別?

對我們有用的唯一方法是修補 unoconv,以便它在打開文檔后立即執行以下操作:

  • Select 全部
  • 觸發選擇的最佳行高

從 python 來看,它看起來像這樣:

frame = document.CurrentController.Frame
dispatcher = self.unosvcmgr.createInstanceWithContext("com.sun.star.frame.DispatchHelper", self.context)
dispatcher.executeDispatch(frame, ".uno:SelectAll", "", 0, ())
dispatcher.executeDispatch(frame, ".uno:SetOptimalRowHeight", "", 0, UnoProps(aExtraHeight=0))

補丁文件在這里: https://gist.github.com/ldiqual/065aada05cfb50443bc67fc3ae99ea14

這就是它在 Docker 中的應用方式:

ENV UNO_URL https://raw.githubusercontent.com/unoconv/unoconv/master/unoconv
COPY ./unoconv.patch /tmp/unoconv.patch
RUN curl -Ls ${UNO_URL} -o /usr/local/bin/unoconv \
  && patch /usr/local/bin/unoconv /tmp/unoconv.patch \
  && chmod +x /usr/local/bin/unoconv \
  && rm /tmp/unoconv.patch \

我試圖在這里解決這個問題https://github.com/PasaOpasen/_excel_correct_cells

我認為結果很好,但並不那么容易

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM