0

我有一个程序可以将 CSV 文件中的数据显示到 ListView 中。然后我有一个名为“报告”的按钮 - 当我单击此按钮时,我希望从 OpenOffice Calc 中的 ListView/CSV 文件中显示数据。

这是我的代码:

Private Sub cmdReports_Click()
Dim oSM As Object
Dim oDesk As Object
Dim oDoc As Object
Dim oSheet As Object
Dim i As Integer

'Instanciate OOo : this line is mandatory with VB for OOo API
Set oSM = CreateObject("com.sun.star.ServiceManage…
'Create the first and most important service
Set oDesk = oSM.CreateInstance("com.sun.star.frame.D…
'Create a new doc
Set oDoc = oDesk.loadComponentFromURL("private:fact… "_blank", _
0, arg())
'Get the first sheet in the doc
Set oSheet = oDoc.getSheets().getByIndex(0)


With oSheet
For i = 1 To ListView1.ListItems.Count
.cells(i, 1) = ListView1.ListItems(i).Text
.cells(i, 2) = ListView1.ListItems(i).SubItems(1)
.cells(i, 3) = ListView1.ListItems(i).SubItems(2)
.cells(i, 4) = ListView1.ListItems(i).SubItems(3)
Next
End With
End Sub

目前,我的所有按钮都在给我运行时错误“438”对象不支持此属性或方法当我调试此行时突出显示:

.cells(i, 1) = ListView1.ListItems(i).Text

此代码是为 Excel 编写的,但我对其进行了编辑,以便可以在 OpenOffice Calc 中显示。有人可以帮忙吗?谢谢

4

1 回答 1

0

它的意思正是它所说的 - 该语句正在使用 Ole 自动化接口不支持的方法属性。第一个问题:您可以使用类型库吗(请参阅参考对话框 - 列表中是否有类似 OpenOffice Calc 的内容)?知道编译时可用的方法和属性要好得多 - 您可以使用 Microsoft Excel 做同样的事情。然后,您可以将变量声明为特定类型,而不是“作为对象”。

不知道 OpenOffice,我在 OpenOffice 上查找了文档,并找到了下一个最好的东西,Star Office。试试:http ://www.openoffice.org/api/basic/man/tutorial/tutorial.pdf 。有关电子表格的文档,请参见第 64 页第 4.4 节。对象模型看起来与 Office 不同,这可以解释您的问题。

看起来好像您需要使用 Sheet.getCellByPosition() 方法,而不是 Cells() 方法,例如

GetCell = oSheet.getCellByPosition (nColumn , nRow)
于 2012-07-19T00:16:43.147 回答