我编写了一个宏,它应该将两个日期(dd.mm.yyyy)作为一个字符串从 OpenOffice 文档(Writer,而不是 Calc)中的表中获取。这两个日期应该合并到这个:ddmmyyyy-ddmmyyyy。这应该用作文件名。
该表只有一行 6 列,第一个日期在 table2:D1:D1 中,第二个在 table2:F1:F1 中。我将其“翻译”为 table2(1, 4) 和 table2(1, 6)
这个德国网站正在做我想做的事情,但使用的是 OOCalc 文档中的电子表格,而不是 OOWriter。
废话不多说,这是我的代码:
sub save
oDoc=thisComponent
sStartDate = oDoc.Table2(1, 4)
sEndDate = oDoc.Table2(1, 6))
sFilename = sStartDate.String & sEndDate.String
sURL = ConvertToURL("file:///home/cp/Documents/" & sFilename & ".odt")
msgbox sURL
' oDoc.StoreAsURL(sURL, Array())
end sub
是的,我运行linux,所以路径应该是正确的。当我尝试运行此脚本时,它说:
Property or Method not found table2
我当然尝试了谷歌,但不知何故我找不到解决方案。一个正确方向的提示就足够了,我也猜想我必须写“更多”:
sStartDate = oDoc.getString(table2(1, 4))
或类似的东西。也没有工作。我尝试的另一件事是使用 (0, 3) 而不是 (1, 4)。
好吧,如果有人可以帮助我,我将不胜感激!:) 我希望我已经按照我在这里发布的方式正确地完成了所有事情。
韦洛
编辑:根据在第14.9章中找到的 PDF,我现在已将脚本修改为此。
现在看起来是这样的,
sub save
oDoc=thisComponent
Dim oTable
Dim sTableName As String
sTableName = "Table2"
oTable = oDoc.getTextTables().getByName(sTableName)
' oTable = oTables.getByName(sTableName)
sStartDate = oTable.getCellByPosition(0, 3)
sEndDate = oTable.getCellByPosition(0, 5)
sFilename = sStartDate.String & sEndDate.String
sURL = ConvertToURL("file:///home/cp/Documents/" & sFilename & ".odt")
msgbox sURL
' oDoc.StoreAsURL(sURL, Array())
end sub
但是,仍然无法正常工作。现在我得到了这个异常IndexOutOfBoundsException。(我想链接它,但它说,我不能发布超过 2 个链接 :-( )
我的第一个想法是我必须将 cels 更改为 0、3 和 0、5。更改后,错误仍然存在。:-(
Edit2:由于我没有得到回应,我想我会在 Python 中尝试这个,也许它会产生更好的结果。