2012-07-17 3 views
0

CSV 파일의 데이터를 ListView에 표시하는 프로그램이 있습니다. 그런 다음 "Reports"버튼을 클릭합니다.이 버튼을 클릭하면 데이터가 OpenOffice Calc의 ListView/CSV 파일에서 표시됩니다. 순간listview에서 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 자동화 인터페이스에서 지원하지 않는 메서드 속성을 사용하고 있습니다. 첫 번째 질문 : 형식 라이브러리를 사용할 수 있습니까 (참조 대화 상자 - 목록에 OpenOffice Calc와 같은 것이 있습니까)? 컴파일 할 때 사용할 수있는 메서드와 속성을 알면 Microsoft Excel에서도 동일하게 수행 할 수 있습니다. 그런 다음 변수를 "As Object"가 아닌 특정 유형으로 선언 할 수 있습니다.

OpenOffice에 대해 알지 못하고 OpenOffice에서 설명서를 찾은 후 차선책 인 Star Office를 찾았습니다. 시도하십시오 : http://www.openoffice.org/api/basic/man/tutorial/tutorial.pdf. 스프레드 시트에 대한 문서는 64 페이지, 4.4 절을보십시오. 개체 모델은 Office와 다르게 보이므로 문제를 설명 할 수 있습니다.

마치 Cells() 메소드가 아니라 Sheet.getCellByPosition() 메소드를 사용해야하는 것처럼 보입니다.

GetCell = oSheet.getCellByPosition (nColumn , nRow)