使用 OLE,从 OpenOffice/LibreOffice Calc 文档中删除除第一个以外的所有 sheet,而不使用 sheet 名称
Using OLE, remove all sheets except first one from a OpenOffice/LibreOffice Calc document, without using sheet names
根据代码创建的 OpenOffice/LibreOffice Calc 文档,想法是添加一个 sheet 作为第一个,然后删除所有其他的(通常文档附带 3 sheet s).
它在 xHarbour 语言程序的 Windows 上使用 OLE,但如果有人知道用任何语言来做,任何语言都可以,翻译不是问题。
我使用 Sheet 名称让它工作。我认为直接使用索引删除它们应该更好,但我无法仅使用索引来完成。
我得到的代码是:
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
根据代码创建的 OpenOffice/LibreOffice Calc 文档,想法是添加一个 sheet 作为第一个,然后删除所有其他的(通常文档附带 3 sheet s).
它在 xHarbour 语言程序的 Windows 上使用 OLE,但如果有人知道用任何语言来做,任何语言都可以,翻译不是问题。
我使用 Sheet 名称让它工作。我认为直接使用索引删除它们应该更好,但我无法仅使用索引来完成。
我得到的代码是:
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