Member 13077455 Ответов: 2

Преобразование значения текстового поля в гиперссылку


Можно ли взять значение текстового поля (напр. Текст) преобразовать его в гиперссылку и экспортировать в электронную таблицу Excel?

У меня есть проект написанный на визуальном языке Studio.net это берет значения текстового поля и экспортирует его в Excel, все работает отлично. Но теперь у меня есть запрос на добавление файла изображений оборудования на нашем заводе в мою электронную таблицу. Я создал свой opendialog, кнопку и текстовое поле, и я могу выбрать файл и отправить его в Excel без каких-либо проблем, я просто не могу понять, как экспортировать его в виде гиперссылки. Ниже приведен мой код. Пожалуйста, помогите!!

Что я уже пробовал:

Открытый Класс Form4

Dim row_min как объект
Dim row_max как объект
Dim col_min как объект
Dim col_max как объект
Dim value1 как целое число
Dim value2 как целое число
Dim strtext как строка

Частная суб Form11_Load(отправителя как объект, а равно EventArgs) обрабатывает ключевое слово mybase.Загрузить

Конец Подводной Лодки

Частная суб обработчика button1_click(отправителя как объект, а равно EventArgs) обрабатывает кнопки button1.Щелчок
Dim xlApp = GetObject("", "Excel.Приложение")
Dim xlBook = xlApp.Workbooks.Открыть("C:\Users\lockhartB\Desktop\Mobile Equipment.xls")
Тусклый xlSheet = xlBook.Рабочие Листы("Лист1")

- установить видимость
xlApp.Видна = Ложь

- Выведите на экран строки и столбцы диапазона.
row_min = xlSheet.UsedRange.Подряд
row_max = row_min + xlSheet.UsedRange.Rows.Количество - 1
col_min = xlSheet.UsedRange.Колонка
col_max = col_min + xlSheet.UsedRange.Столбцы.Количество - 1


- введите данные
xlSheet.cells(row_max + 1, col_min).Значение = Элемент Combobox1.Текст

xlSheet.cells(row_max + 1, col_min + 1).Value = ComboBox3.Text

xlSheet.cells(row_max + 1, col_min + 2).Value = TextBox3.Text

xlSheet.cells(row_max + 1, col_min + 3).Value = TextBox4.Text

xlSheet.cells(row_max + 1, col_min + 4).Value = TextBox1.Text

xlSheet.cells(row_max + 1, col_min + 5).Value = TextBox2.Text

xlSheet.cells(row_max + 1, col_min + 6).Value = ComboBox2.Text

xlSheet.cells(row_max + 1, col_min + 7).Value = TextBox5.Text

xlSheet.cells(row_max + 1, col_min + 8).Value = TextBox6.Text

xlSheet.cells(row_max + 1, col_min + 9).Value = ComboBox4.Text

xlSheet.cells(row_max + 1, col_min + 10).Value = TextBox7.Text

xlSheet.cells(row_max + 1, col_min + 11).Value = TextBox8.Text

xlSheet.cells(row_max + 1, col_min + 12).Value = TextBox9.Text


- сохранить изменения
xlBook.Сохранить()

- близкая работа.
xlBook.Закрыть(Ложь)

- выйти из приложения
xlApp.Бросить()

Поле combobox1.Свойства selectedIndex = -1

ComboBox2.Свойства selectedIndex = -1

ComboBox3.Свойства selectedIndex = -1

ComboBox4.Свойства selectedIndex = -1


Для каждого элемента управления, как контроль в меня.Контроль
Если TypeOf (control) - это System.Окна.Формы.Тогда Текстовое Поле

контроль.Текст = ""

Конец, Если
Следующий
Конец Подводной Лодки

Private Sub Button5_Click(sender As Object, e As EventArgs) обрабатывает Button5.Щелчок
OpenFileDialog1.Метод showdialog()
TextBox9.Text = OpenFileDialog1.имя файла

Попробуй
Оболочка(TextBox9.Text)
Поймать ex как исключение

Конец Попытки
Конец Подводной Лодки
End Класса

2 Ответов

Рейтинг:
12

MadMyche

Документация для этого предоставляется в рамках Office Interop, перейдите по ссылке для метода "добавить".
MS Office Interop } Excel } гиперссылка


Этот образец основан на "column12" заполняется из "TextBox9". У

xlSheet.Hyperlinks.Add(xlSheet.cells(row_max + 1, col_min + 12), TextBox9.Text)


Member 13077455

Мадмыч, спасибо тебе большое, это сработало как заклинание!!!!!

MadMyche

Пожалуйста

Member 13077455

MadMyche,

У меня есть еще один вопрос к вам в моей программе все работает с гиперссылкой единственная проблема, которая у меня есть, это кнопка, которая получает рабочий лист, прикрепляется к электронной почте и рассылается в список рассылки. Проблема заключается в том, что вы открываете это вложение и нажимаете на гиперссылку с надписью (Не удается открыть файл). Но если вы перейдете на сетевой диск и откроете лист, где находится исходный лист, он откроет ссылку. Ниже приведен мой код для электронной почты.




MadMyche

Попробуйте использовать UNC-путь к элементу (\\Server\Share\{folders}\filename.xls

Member 13077455

Good morning! Hey I tried the last option you gave me with the UNC path but it didn't work. I want to run something by you that I figured out and see what you think if you don't mind. The picture files are coming from our server it is in the same folder as the spreadsheet I am writing to. When I save the report using the VB form and and email it if I go to the hyperlink I get this which is correct. \\USSEBFILEC1N1\DataPlant\Plantwide Data\Mobile Fleet Status\Casting Pictures\0224.JPG but when I hover over the hyperlink it is actually this (///C:\users\lockhartb\appdata\local\microsoft\windows\temporary\internet files\casting\pictures\0224.jpg) That is what is causing the issue. Any of your wisdom would be greatly appreciated!


MadMyche

Если все пользователи имеют доступ к этому сетевому местоположению, то я бы просто сохранил файл Excel в этом месте. Это также сделало бы гиперссылки "беспутными" и должно было бы быть только фактическим именем файла

Member 13077455

Эй, спасибо вам за всю вашу помощь! В конце концов я обнаружил проблему, связанную с настройкой безопасности в Excel. Мне пришлось снять галочку с веб-опций, чтобы сохранить их в настройках. Теперь это действует как заклинание.Спасибо!!

Рейтинг:
1

Member 13077455

Публичный Класс Form2

Dim row_min как объект
Dim row_max как объект
Dim col_min как объект
Dim col_max как объект
Dim value1 как целое число
Dim value2 как целое число
Частная суб Form11_Load(отправителя как объект, а равно EventArgs) обрабатывает ключевое слово mybase.Загрузить

Конец Подводной Лодки

Частная суб обработчика button1_click(отправителя как объект, а равно EventArgs) обрабатывает кнопки button1.Щелчок
Dim xlApp = GetObject("", "Excel.Приложение")
Dim xlBook = xlApp.Workbooks.Открыть("G:\Plantwide данные\состояние мобильного парка\отчет о времени простоя мобильного оборудования\отчет о времени простоя мобильного оборудования и Cost.xls")
Тусклый xlSheet = xlBook.Рабочие Листы("Литье")

- установить видимость
xlApp.Видна = Ложь

- Выведите на экран строки и столбцы диапазона.
row_min = xlSheet.UsedRange.Подряд
row_max = row_min + xlSheet.UsedRange.Rows.Количество - 1
col_min = xlSheet.UsedRange.Колонка
col_max = col_min + xlSheet.UsedRange.Столбцы.Количество - 1


- введите данные
xlSheet.cells(row_max + 1, col_min).Значение = Элемент Combobox1.Текст

xlSheet.cells(row_max + 1, col_min + 1).Value = ComboBox3.Text

xlSheet.cells(row_max + 1, col_min + 2).Value = TextBox3.Text

xlSheet.cells(row_max + 1, col_min + 3).Value = TextBox4.Text

xlSheet.cells(row_max + 1, col_min + 4).Value = TextBox1.Text

xlSheet.cells(row_max + 1, col_min + 5).Value = TextBox2.Text

xlSheet.cells(row_max + 1, col_min + 6).Value = ComboBox2.Text

xlSheet.cells(row_max + 1, col_min + 7).Value = TextBox5.Text

xlSheet.cells(row_max + 1, col_min + 8).Value = TextBox6.Text

xlSheet.cells(row_max + 1, col_min + 9).Value = ComboBox4.Text

xlSheet.Hyperlinks.Add(xlSheet.cells(row_max + 1, col_min + 10), TextBox7.Text)

xlSheet.Hyperlinks.Add(xlSheet.cells(row_max + 1, col_min + 11), TextBox8.Text)

xlSheet.Hyperlinks.Add(xlSheet.cells(row_max + 1, col_min + 12), TextBox9.Text)

- сохранить изменения
xlBook.Сохранить()

- близкая работа.
xlBook.Закрыть(Ложь)

- выйти из приложения
xlApp.Бросить()

Поле combobox1.Свойства selectedIndex = -1

ComboBox2.Свойства selectedIndex = -1

ComboBox3.Свойства selectedIndex = -1

ComboBox4.Свойства selectedIndex = -1



Для каждого элемента управления, как контроль в меня.Контроль
Если TypeOf (control) - это System.Окна.Формы.Тогда Текстовое Поле

контроль.Текст = ""

Конец, Если
Следующий
Конец Подводной Лодки


Private Sub Button2_Click(отправитель как объект, e Как EventArgs)
Dim objOutlook как объект
Dim objOutlookMsg как объект
objOutlook = CreateObject("Outlook.Приложение")
objOutlookMsg = objOutlook.CreateItem(0)
С objOutlookMsg
.К = ""
.Cc = "Брэннон.lockhart@centuryaluminum.com"
.Subject = "время простоя и затраты мобильного оборудования"
.Body = "это тело сообщения"
.HTMLBody = "прилагается копия простоя и затрат мобильного оборудования"
.Attachments.Add("G:\Plantwide данные\состояние мобильного парка\отчет о времени простоя мобильного оборудования\отчет о времени простоя мобильного оборудования и Cost.xls")
.Отправить() 'поехали!
Конец С
objOutlookMsg = ничего
objOutlook = ничего

Конец
Конец Подводной Лодки