2012-07-17 41 views
0

我有一个程序,它将CSV文件中的数据显示到ListView中。 然后我有一个名为“Reports”的按钮 - 当我点击这个时,我想要在OpenOffice Calc的ListView/CSV文件中显示数据。将数据从列表视图导出到OpenOffice VB6

这是我的代码:

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中显示。 任何人都可以帮忙吗? 谢谢

回答

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) 
相关问题