Может кто-нибудь сказать мне, как читать файл Excel в Visual Basic 6.0 и импортировать все значения в список или datagridview, хотите использовать простой и эффективный техники для достижения этого. может кто-нибудь помочь мне решить эту проблемуКак читать файл Excel (97-03) в Visual Basic 6.0
4
A
ответ
7
Это следует импортировать данные из Excel файла в ListView:
Dim ExcelObj As Object
Dim ExcelBook As Object
Dim ExcelSheet As Object
Dim i As Integer
Set ExcelObj = CreateObject("Excel.Application")
Set ExcelSheet = CreateObject("Excel.Sheet")
ExcelObj.WorkBooks.Open App.Path & "\ExcelFile.xls"
Set ExcelBook = ExcelObj.WorkBooks(1)
Set ExcelSheet = ExcelBook.WorkSheets(1)
Dim l As ListItem
lvwList.ListItems.Clear
With ExcelSheet
i = 1
Do Until .cells(i, 1) & "" = ""
Set l = lvwList.ListItems.Add(, , .cells(i, 1))
l.SubItems(1) = .cells(i, 2)
l.SubItems(2) = .cells(i, 3)
l.SubItems(3) = .cells(i, 4)
i = i + 1
Loop
End With
ExcelObj.WorkBooks.Close
Set ExcelSheet = Nothing
Set ExcelBook = Nothing
Set ExcelObj = Nothing
2
Я был бы намного более вероятно, использовать управляющую сетку своего рода, а не ListView для этого, но ...
Поскольку вы просто вводите значения без метаданных (форматирование), вы можете использовать один из IISAM в Excel для этого, и он даже работает на машинах, где Excel не установлен!
Dim SheetName As String
Dim RS As ADODB.Recordset
Dim LI As ListItem
Dim I As Integer
'Look up 1st Worksheet (or just hardcode its Name).
'
'Notes:
' o Can use Excel 8.0 or Excel 5.0 to read most Excel 7.0/97
' Workbooks, but there is no IISAM specifically for Excel 7.0.
' o Use HDR=Yes if your Worksheet has a header row.
With CreateObject("ADOX.Catalog")
.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" _
& App.Path & "\sample.xls';" _
& "Extended Properties='Excel 5.0;HDR=No'"
SheetName = .Tables(0).Name
Set RS = New ADODB.Recordset
Set RS.ActiveConnection = .ActiveConnection
End With
'The "Table" name can be a range too, e.g. [Sheet1$A1C7]
With RS
.Open "[" & SheetName & "]", _
, _
adOpenForwardOnly, _
adLockReadOnly, _
adCmdTable
ListView.ListItems.Clear
ListView.View = lvwReport
For I = 0 To .Fields.Count - 1
ListView.ColumnHeaders.Add , , .Fields(I).Name
Next
Do Until .EOF
Set LI = ListView.ListItems.Add(, , CStr(.Fields(0).Value))
For I = 1 To .Fields.Count - 1
LI.SubItems(I) = CStr(.Fields(I).Value)
Next
.MoveNext
Loop
.Close
End With
Смежные вопросы
- 1. Visual Basic 6.0
- 2. Visual Basic 6.0 и MS Excel 2003
- 3. Децималы в Visual Basic 6.0
- 4. Visual Basic 6.0 hash function
- 5. Документирование кода Visual Basic 6.0
- 6. Visual Basic 6.0 Case Statement
- 7. Visual Basic 6.0 Форма входа
- 8. Генератор кода Visual Basic 6.0
- 9. Создать дублирующую форму в Visual Basic 6.0
- 10. Разница между Visual Basic 6.0 и VBA
- 11. Сохранить файл без сохранения диалога в Visual Basic 6.0
- 12. Отладка макроса Excel через Microsoft Visual Basic 6.0
- 13. Автоматическое преобразование типов в Visual Basic 6.0
- 14. Использование HID USB в Visual Basic 6.0
- 15. datagrid в visual basic 6.0 не обновляется
- 16. Десятичный тип данных в Visual Basic 6.0
- 17. Visual Basic Excel Macro
- 18. Visual Basic OpenLinks Excel
- 19. Объявление Visual Basic от 6.0 до VB.NET
- 20. Функция CreateDC Для Visual Basic 6.0
- 21. Visual Basic 6.0 отсутствует компонент компонента richtextedit
- 22. Поделиться на Facebook от Visual Basic 6.0
- 23. Генератор диаграмм Visual Basic 6.0 UML
- 24. Visual Basic 6.0 Передача ссылочной проблемы
- 25. Magic square error in visual basic 6.0
- 26. кода Visual Basic в Excel
- 27. Visual Basic в Excel - WorksheetFunction.max
- 28. visual studio: Как читать настройки в Visual Basic
- 29. Как установить региональные параметры в приложении Visual Basic 6.0?
- 30. Как сделать «Public Declare Ansi Function» в Visual Basic 6.0?
я знаю, это все устаревшие, но это нужно в последний раз – karthik