将数据从listview导出到OpenOffice VB6

时间:2012-07-17 14:17:20

标签: vb6

我有一个程序可以将CSV文件中的数据显示到ListView中。 然后我有一个名为“Reports”的按钮 - 当我点击这个时,我希望从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中显示。 有人可以帮忙吗? 感谢

1 个答案:

答案 0 :(得分:0)

这正是它所说的 - 声明正在使用Ole Automation接口不支持的方法属性。第一个问题:你可以使用类型库(参见参考资料对话框 - 列表中是否有类似OpenOffice Calc的东西)?了解编译时可用的方法和属性要好得多 - 您可以使用Microsoft Excel执行相同的操作。然后,您可以将变量声明为特定类型,而不是“As Object”。

不知道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)