Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Открытие внедрённого файла через GetObject

7.5K
14 июня 2006 года
FVG
44 / / 08.06.2006
VB.NET. Внедрил в проект файл - таблицу Excel c данными "...Книга1.xls". Как обратится к ней через GetObject. Бьюсь уже несколько дней - ничего не получается. Буду очень признателен за помощь.
273
17 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=FVG]VB.NET. Внедрил в проект файл - таблицу Excel c данными "...Книга1.xls". Как обратится к ней через GetObject. Бьюсь уже несколько дней - ничего не получается. Буду очень признателен за помощь.[/quote]
Приведи пример кода. Я с начала подумал, что можно использовать таблицы Excel как источники данных, если внедрить их в проект - а не нифига. Такая фишка только с *.mdb файлами прокатывает. В случае с Excel нужно работать только в runtime. В MSDN нарыл пример, лежит в аттаче.
7.5K
17 июня 2006 года
FVG
44 / / 08.06.2006
[QUOTE=3A3-968M]Приведи пример кода. Я с начала подумал, что можно использовать таблицы Excel как источники данных, если внедрить их в проект - а не нифига. Такая фишка только с *.mdb файлами прокатывает. В случае с Excel нужно работать только в runtime. В MSDN нарыл пример, лежит в аттаче.[/QUOTE]
Код:
Public Class Form1
    Dim objExcel As Excel.Application
    Dim objBook As Excel.Workbook
    Dim objSheet As Excel.Worksheet


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        objExcel = GetObject("E:\Proba4\WindowsApplication1\WindowsApplication1\Книга1.xls")
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        objExcel.Visible = True
    End Sub
End Class
273
18 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
А если открыть через коллекцию Workbooks объекта Application?
 
Код:
this.Application.Workbooks.Open(@"C:\YourPath\YourWorkbook.xls, ...);
7.5K
19 июня 2006 года
FVG
44 / / 08.06.2006
Через коллекцию Workbooks объекта Application можно открыть новый
(созданный через "New") файл. Мне же нужно открыть существующий файл не создаая нового.
273
22 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=FVG]Через коллекцию Workbooks объекта Application можно открыть новый
(созданный через "New") файл. Мне же нужно открыть существующий файл не создаая нового.[/quote]
Я тебя непонял. Какой New? Я же код привёл:
 
Код:
Me.Application.Workbooks.Open "D:\Книга 1.xls"

Происходит открытие уже существующего файла.
А данные берём так:
 
Код:
Me.Application.Workbooks.Open "D:\Книга 1.xls"
    Dim cellVal As String
    cellVal = Me.Application.Workbooks("Книга 1.xls").Sheets("Лист1").Cells(1, 1) 'теперь здесь значение ячейки
7.5K
22 июня 2006 года
FVG
44 / / 08.06.2006
Извиняюсь, может я неправильно подал мысль. Я подключил к проекту
Excel следующим образом: Project,Add Existing Item...,Files of Type: All Files,Книга1: Add.
По Вашему коду, ЗАЗ, VB выдаёт, что она не Me.
273
22 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
Если ты добавляешь к проекту файл *.xls, то он не "встраивается", как источник данных (в отличие от *.mdb файла, при включении которого MSVS генерит код). При таком добавлении файл будет просто скопирован в одну папку с проектом и будет доступен через относительный путь, вот и всё!! более MSVS никаких чудес с ним не ДЕЛАЕТ. Так что всё это можно провернуть только через Interop. Приведу более развёрнутый код:
>>>добавляем к проекту ссылку на Office.dll и Microsoft.Office.Tools.Excel
Код:
[SIZE=2][SIZE=2][COLOR=#0000ff]option[/COLOR][/SIZE][SIZE=2] [/SIZE][SIZE=2][COLOR=#0000ff]strict[/COLOR][/SIZE][SIZE=2] [/SIZE][SIZE=2][COLOR=#0000ff]off
imports[/COLOR][/SIZE][SIZE=2] System
[/SIZE][SIZE=2][COLOR=#0000ff]imports[/COLOR][/SIZE][SIZE=2] System.Reflection [/SIZE][SIZE=2][COLOR=#008000]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]imports[/COLOR][/SIZE][SIZE=2] System.Runtime.InteropServices [/SIZE][SIZE=2][COLOR=#008000]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]Imports[/COLOR][/SIZE][SIZE=2] Microsoft.Office.Interop.Excel[/SIZE]
[SIZE=2]........
[/SIZE][/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][SIZE=2] app [/SIZE][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] Application[/FONT]
[FONT=Courier New]app = [/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]New[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] Application()[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][SIZE=2] myBook [/SIZE][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] Workbook[/FONT]
[FONT=Courier New]myBook = app.Workbooks.Open([/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#800000]"Книга1.xls"[/COLOR][/SIZE][SIZE=2]) [/SIZE][SIZE=2][COLOR=#008000]'Открываем книгу
[/COLOR][/SIZE][/FONT][SIZE=2][/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][SIZE=2] mySheet [/SIZE][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New] Worksheet[/FONT]
[FONT=Courier New]mySheet = myBook.Sheets.Item([/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#800000]"Лист1"[/COLOR][/SIZE][SIZE=2]) [/SIZE][SIZE=2][COLOR=#008000]'выбираем лист
[/COLOR][/SIZE][/FONT][SIZE=2][/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][SIZE=2] myCell [/SIZE][SIZE=2][COLOR=#0000ff]As[/COLOR][/SIZE][SIZE=2] [/SIZE][SIZE=2][COLOR=#0000ff]Object
[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New]myCell = mySheet.Range([/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#800000]"A1"[/COLOR][/SIZE][SIZE=2], [/SIZE][SIZE=2][COLOR=#800000]"B1"[/COLOR][/SIZE][SIZE=2]) [/SIZE][SIZE=2][COLOR=#008000]'диапазон теперь
[/COLOR][/SIZE][/FONT]
7.5K
22 июня 2006 года
FVG
44 / / 08.06.2006
Ещё один вопрос, ЗАЗ, и я отвяжусь. Что такое - относитнльный путь?
273
23 июня 2006 года
3A3-968M
1.2K / / 22.12.2005
[quote=FVG]Ещё один вопрос, ЗАЗ, и я отвяжусь. Что такое - относитнльный путь?[/quote]
Главное, что бы ты разобрался:) Пример относительного пути:
\MyFolder\MyFile.txt
Пример абсолютного пути:
C:\Documents and Settings\MyFolder\MyFile.txt
Если ты из программы используешь относительный путь, то ты можешь пользоватся файлами, входящими в состав твоей проги без привязки к какому то конкретному пути. Например, если в одной папке с твоим EXE файлом лежит файл Book.xls, то из программы нужно обращаться к нему так:
Boo.xls
А не по абсолютному пути:
C:\BlaBla\Book.xls
Ведь пользователь может куда угодно поставить твою прогу.
7.5K
02 июля 2006 года
FVG
44 / / 08.06.2006
ЗАЗ
Благодарю за помощь
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог