簡體   English   中英

使用 OLE,從 OpenOffice/LibreOffice Calc 文檔中刪除除第一個以外的所有工作表,而不使用工作表名稱

[英]Using OLE, remove all sheets except first one from a OpenOffice/LibreOffice Calc document, without using sheet names

從基於代碼創建的 OpenOffice/LibreOffice Calc 文檔中,想法是添加一個工作表作為第一個工作表,然后刪除所有其他工作表(通常該文檔帶有 3 個工作表)。

它在 xHarbour 語言程序的 Windows 上使用 OLE,但是如果有人知道使用任何語言,任何語言都可以,翻譯不是問題。

我使用工作表名稱讓它工作。 我認為這應該更好地直接使用索引來刪除它們,但是我無法僅使用索引來做到這一點。

我得到的代碼是:

oPlan := oSheetDoc:GetSheets()
oPlan:insertNewByName("My New Sheet", 0)
DO WHILE oPlan:GetCount() > 1
    oPlan:removeByName(oPlan:GetByIndex(oPlan:GetCount()-1):getName())
ENDDO

我認為這應該是我在 OpenOffice 的在線文檔中找不到的“按索引刪除”。

任何人都知道是否有辦法只使用索引,或者比我做得更好?

根據https://forum.openoffice.org/en/forum/viewtopic.php?f=20&t=94494 ,只能按名稱刪除工作表。

oSheets = oDoc.Sheets
aSheetNames() = oSheets.getElementNames()
for iSheet = 1 to ubound(aSheetNames)
    oSheets.removeByName(aSheetNames(iSheet))
next iSheet

暫無
暫無

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

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