Страница: 1 |
Страница: 1 |
Вопрос: Простите за тупость...
Добавлено: 01.09.08 03:15
Автор вопроса: dwpa
Простите за тупость, но мне позволительно - с VB работать только начал. Установил себе VB 2008 скачал книжку на англицком - изучил, но остался один вопрос: как открыть файл Exel, считать из нужной ячейки число (либо строку) и вставить ее например в label на форме? Спасибо!
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #1
Добавлено: 01.09.08 20:43
Скачай еще книжку про СОМ, и приятно удивись как это просто сделать
А вобще-то на форуме это обсуждалось, я сам не мало намучался с дотнетом и экселем, но еще во времена 1 FW, может счас получше стало
Номер ответа: 2
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #2
Добавлено: 01.09.08 20:46
Во нашел объявление объектной переменной, дальше макросами (запиши и посмотри, как выдрать значение).
Dim wb As Excel.Workbook
wb = ex.Workbooks.Add
ex.Visible = True
и дальше с ex как в vb6
Номер ответа: 3
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #3
Добавлено: 01.09.08 20:47
Скачай еще книжку про СОМ, и приятно удивись как это просто сделать
А вобще-то на форуме это обсуждалось, я сам не мало намучался с дотнетом и экселем, но еще во времена 1 FW, может счас получше стало
Номер ответа: 4
Автор ответа:
dwpa
Вопросов: 3
Ответов: 3
Профиль | | #4
Добавлено: 06.09.08 00:55
Спасибо, но видимо руки у меня совсем кривые. VB 2008 отказывается понимать подобные записи, максимум, из того, что я смог от него добиться, это открыть нужный мне файл, а на строке с кодом присваивания значения ячейки этот "мегакрасивый" Basic выдает ошибку (поверьте я не мало инфы перелапатил и все бестолку - даже книги нормальной по нему нет). Может я обнаглею попросив, но мне очень бы помогло, если бы кто-нибудь работающий с VB 2008 написал простенький кодик "выдерания" значения из ячейки файла Excel
Номер ответа: 5
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #5
Добавлено: 06.09.08 02:17
Не понимаю, что сложного?
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ex As Excel.Application
Dim wb As Excel.Workbook
ex = New Excel.Application()
wb = ex.Workbooks.Add()
ex.Visible = True
With ex
.Range("4".Select()
.ActiveCell.FormulaR1C1 = "jnb,bbnb"
MsgBox(.ActiveCell.FormulaR1C1)
End With
End Sub
End Class
ЗЫ: чтобы можно было импортировать пространство имен екселя, нужно подключить COM объект к проекту (Project->Add Reference вкладка COM, и выбираешь Microsoft Excel 11(12) Object Library).
Номер ответа: 6
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #6
Добавлено: 06.09.08 02:19
Номер ответа: 7
Автор ответа:
dwpa
Вопросов: 3
Ответов: 3
Профиль | | #7
Добавлено: 06.09.08 03:46
Красота зовет спать и мешает делать бакалаврку, а на мониторе не спаситель мира а разнаперость от которой глаза устают быстрее чем от зелени на черном
Да, сложного тут видимо ничего (а про библиотеку уж не обижайте, не на столько я и ленивый, чтоб ничегошеньки самому не поискав тут спрашивать))))). И примеры я подобные видел уже, только вот проблема в том, что мой VB запись типа "ex = New Excel.Application()" непонимает. Точнее Application после Excel, Add после Workbooks, Select после Range, и FormulaR1C1 после ActiveCell. Я тут подумал , может у меняя VB стал как-то криво или это из-за версии (Express Edition с сайта MS, библиотека ver.12, ОС Vista HP )?
Номер ответа: 8
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #8
Добавлено: 06.09.08 04:05
Нее это все COM хреновничает, Vista Home Premium далеко не лучшая платформа для разработки, так что рецепт прост: висту выкинуть, и поставить или Server 2008 или ХРюшку, а еще лучше WinNT 4.0+SP6, но это для маньяков
Номер ответа: 9
Автор ответа:
dwpa
Вопросов: 3
Ответов: 3
Профиль | | #9
Добавлено: 11.10.08 00:19
Уф! Заработался на учебе и на бакалаврку времени совсем нет. Спасибо за советы, очень помогли (особенно мыслью, что дело вовсе не в том, кто в кабине, а бобина для Office 2007 в итоге получилась такой:
Dim ex As Microsoft.Office.Interop.Excel.Application
 im wb As Microsoft.Office.Interop.Excel.Workbook
ex = New Microsoft.Office.Interop.Excel.Application()
wb = ex.Workbooks.Add()
ex.Visible = True
With ex
.Range("C4".Select()
.ActiveCell.FormulaR1C1 = "jnb,bbnb"
MsgBox(.ActiveCell.FormulaR1C1)
End With
Но на радостях по поводу разрешенного вопроса задам еще один как узнать наличие некоторого файла в некоторой папке? Заранее спасибо!
Номер ответа: 10
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #10
Добавлено: 11.10.08 08:25
If File.Exists("C:\Temp\FileIsExist.sss" Then
 ebug.Print "Оно есть!"
Else
 ebug.Print "Файл из бин юк!"
End If
Номер ответа: 11
Автор ответа:
Фенягz
ICQ: 387437448
Вопросов: 7
Ответов: 202
Web-сайт:
Профиль | | #11
Добавлено: 22.10.08 22:07
Блин! Совсем разучились пользоваться тегом source :D Смешно смотрится когда форум воспринимает код как смайл...
Номер ответа: 12
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #12
Добавлено: 23.10.08 10:29
Не то чтобы разучились, но вот если бы была кнопка редактирования, то было бы не так весело воспринимать преобразования кода в смайлики.
Номер ответа: 13
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #13
Добавлено: 28.10.08 01:12
Если тебе нужно только чтение определенной ячейки и достаточно базовой функциональности, можно обойтись другим решением, например
http://www.codeproject.com/KB/office/Excel_DataReader.aspx