powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поиск и вставка конкретной таблицы в VB 2010
57 сообщений из 57, показаны все 3 страниц
Поиск и вставка конкретной таблицы в VB 2010
    #38717249
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени. Есть программный код на VB Application, который ищет на сайте из всех таблиц, одну нужную таблицу, и вставляет ее в Excel. Как правильно будет написать программный код в VB 2010? Код прилагаю.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Set maPageHtml = IE.document
Set Htable = maPageHtml.getElementsbyTagname("table") 'выбираем все таблицы и ищем таблицу с данными - ее имя должно быть "table tbl_1"
For i = 0 To Htable.Length - 1
    If Htable(i).classname = "t2standard" Then Exit For
Next i
Set maTable = Htable(i) ' выбрали нужную
'запускаем цикл по всем ячейкам - последовательно заносим их на лист
s = IIf(last = 8, last, last + 8) 'номер строки листа экселя куда будут заноситься данные - в первый раз = 1 затем = послед заполнен ячейка +1
ss = IIf(s = 1, 1, 1) 'номер строки таблицы сайта в первый запуск = 1 - шапка, в остальные = 2 (искл шапку)
On Error Resume Next
For i = ss To maTable.Rows.Length ' table rows
    For J = 1 To maTable.Rows(i - 1).Cells.Length ' for each cell of the row
        Worksheets("На_регистрации").Cells(s, J) = maTable.Rows(i - 1).Cells(J - 1).innertext
    Next J
    If maTable.Rows(i - 1).Cells.Length > 0 Then s = s + 1 'в таблице есть пустые строки, делаем проверку на колво ячеек в строке - если пусто то игнорми переход на новую строку листа
Next i




Заранее всем спасибо!

Модератор: Тема перенесена из форума "Visual Basic".
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717429
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
visak,

Интересный вопрос, на делфи подсказали с такой проблемой)
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717432
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Spartak19,
К сожалению, необходимо на Visual Basic, как думаешь, тут помогут с этим?
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717440
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Spartak19,

Судя по коду это оргазация парсинга на VBA, я так понимаю тебе надо все это переписать на VISUAL BASIC. Поэтому мне кажется тут вопрос стоит как парсить данные с Интернет страницы и занести их в элемент на форме
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717445
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Spartak19, Ну будем надеяться, что гении мысли, помогут...
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717502
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visakSpartak19,
К сожалению, необходимо на Visual Basic, как думаешь, тут помогут с этим?

Посмотрите тему - принципы работы с Exсel.
Чисто по логике - будет похоже.
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717507
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717524
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
D129,
Как это записать на VISUAL BASIC 2010 EXPRESS? Не на VBA(MS Office), а в компиляторе VB2010
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717569
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как-то так:


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
Imports System.Reflection

Public Class ExcelExpress



    Dim UID = "Excel.Application"
    Dim oExcel As Object

    Dim WorkBooks, WorkBook, WorkSheets, WorkSheet, Range, Interior

    '//КОНСТРУКТОР КЛАССА
    Public Sub New()
        oExcel = Activator.CreateInstance(Type.GetTypeFromProgID(UID))
    End Sub




    ' //ОТКРЫТЬ ДОКУМЕНТ
    Public Function OpenDocument(name As String)

        WorkBooks = oExcel.GetType().InvokeMember("Workbooks", BindingFlags.GetProperty, Nothing, oExcel, Nothing)
        WorkBook = WorkBooks.GetType().InvokeMember("Open", BindingFlags.InvokeMethod, Nothing, WorkBooks, New Object() {name, True})
        WorkSheets = WorkBook.GetType().InvokeMember("Worksheets", BindingFlags.GetProperty, Nothing, WorkBook, Nothing)
        WorkSheet = WorkSheets.GetType().InvokeMember("Item", BindingFlags.GetProperty, Nothing, WorkSheets, New Object() {1})
        '' // Range = WorkSheet.GetType().InvokeMember("Range",BindingFlags.GetProperty,null,WorkSheet,new object[1] { "A1" });
    End Function


    ' // НОВЫЙ ДОКУМЕНТ
    Public Function NewDocument()

        WorkBooks = oExcel.GetType().InvokeMember("Workbooks", BindingFlags.GetProperty, Nothing, oExcel, Nothing)
        WorkBook = WorkBooks.GetType().InvokeMember("Add", BindingFlags.InvokeMethod, Nothing, WorkBooks, Nothing)
        WorkSheets = WorkBook.GetType().InvokeMember("Worksheets", BindingFlags.GetProperty, Nothing, WorkBook, Nothing)
        WorkSheet = WorkSheets.GetType().InvokeMember("Item", BindingFlags.GetProperty, Nothing, WorkSheets, New Object() {1})
        Range = WorkSheet.GetType().InvokeMember("Range", BindingFlags.GetProperty, Nothing, WorkSheet, New Object() {"A1"})
    End Function



    '// ЗАПИСАТЬ ЗНАЧЕНИЕ В ЯЧЕЙКУ
    Public Sub SetValue(range As String, value As String)

        Dim Rrange = WorkSheet.GetType().InvokeMember("Range", BindingFlags.GetProperty, Nothing, WorkSheet, New Object() {range})
        Rrange.GetType().InvokeMember("Value", BindingFlags.SetProperty, Nothing, Rrange, New Object() {value})
    End Sub


    Public WriteOnly Property Visible() As Boolean

        Set(ByVal value As Boolean)

            If False = value Then

                oExcel.GetType().InvokeMember("Visible", BindingFlags.SetProperty, Nothing, oExcel, New Object() {False})

            Else
                oExcel.GetType().InvokeMember("Visible", BindingFlags.SetProperty, Nothing, oExcel, New Object() {True})

            End If
        End Set
    End Property

      



End Class





Потом создайте форму с кнопкой, и в обработчике нажатия на кнопку:


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        Dim currentEx As New ExcelExpress

        currentEx.NewDocument()

        currentEx.SetValue("A1", "erwerwerw")


        currentEx.Visible = True


    End Sub
End Class




Добавляйте свою логику заполнения документа.

Все остальные функции для работы с Экселом - можно добавить по мере надобности.

:-)
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717592
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
D129,

Мне нужно скопировать данные из этой таблицы на сайте в элемент datagridview
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717593
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
visak,
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717594
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
visak,

в этот элемент
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717595
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
visak,
Примерно так
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717607
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visak,

Так вам и эксель не нужен?
А в базу данных этого сайта случайно не обнаружится доступ?



авторМне нужно скопировать данные из этой таблицы на сайте в элемент datagridview

Это тоже знаю, но давайте завтра. Кушать хочется уже.
:-)

Если вы все равно VB не знаете - учили бы сразу Шарп...
А то заставили меня гуглить, как конструктор в VB писать....

:-(
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717609
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
D129, Буду ждать, а то я голову сломал, как вставить данные из таблицы в DataGridview, Приятного аппетита тебе =)
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717618
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
D129, Если, что вот ссылка на сайт http://www.minfin.ru/ru/accounting/reestr_audit/auditors/index.php?from4=1
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717669
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visak,
Данные вставляются не в DataGridView, а в DataTable, который "присоединён" к DataGridView.

Парсинг таблицы из HTML кода уже получилось соорудить?
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717680
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex Kuznetsov, парсинг таблицы еще не получилось соорудить.
Почему то думал, что данные вставляются в DataGridView...
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717682
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visak... парсинг таблицы еще не получилось соорудить.Для начала надо с этим разобраться...

visakПочему то думал, что данные вставляются в DataGridView... А почитать в MSDN? Данные действительно можно вставлять в DataGridView, но потом-то Вы что с ними делать будете? Просто покажете и всё?
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717683
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex Kuznetsov, Можете показать на примере?
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717687
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spartak19Alex Kuznetsov, Можете показать на примере?Что показать?
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717689
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex Kuznetsov,
Парсинг хотя бы одной строки в Datagrid через DataTable
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717694
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spartak19Alex Kuznetsov,
Парсинг хотя бы одной строки в Datagrid через DataTable
"В лоб" алгоритм следующий:
1. Создать объект класса DataTable
2. Создать в этом объекте столбцы
3. Получить HTML страницу как одну строку ( поизучайте возможности )
4. Найти вхождение нужного тега, думаю что это будет
Код: plaintext
<table class="table tbl_1">
5. От найденной позиции в цикле "шуровать" по тегам <tr class="row_org">...</tr>
6. Для каждой новой "строки" <tr> создать строку в объекте класса DataTable
7. В каждой "строке" искать теги <td>...</td> и их "содержимое" копировать в соответствующее поле объекта класса DataRow
8. "Присоединить" DataTable к DataGridView используя хотя-бы метод SetDataBinding

Ежели не ждать чудес, а самому посмотреть документацию по классу DataTable, то там половина из того, что Вам нужно уже есть...
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38717716
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем 3 одинаковые темы? Неужто Spartak19 и visak - разные люди? Совсем не верится...

1) Для скачки таблицы с текущей страницы ясно же сказали:
WebBrowser.Document.GetElementsByTagName("TABLE").Cast<HtmlElement>().First(el => el.className=="значение атрибута class").GetElementsByTagName("TR") и далее работаете с коллекцией строк как хотите

2) Далее, создаете класс с любым названием, например Cortage и нужными полями (какие именно нужны из таблицы на сайте)

3) Из полученной коллекции строк делаете List<Cortage> (то есть просто заполняете полученными значениями)

4) DataGridView.DataSource = new BindingList<Cortage>(сюда список List<Cortage>)
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718200
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79, Совершенно верно, мы разные люди, просто похожи темы. Пробую, пробую, не получается, то ли руки кривые, то ли не понимаю =).
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718259
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но вы же ничего не попробовали?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
            webBrowser1.Navigate("http://www.minfin.ru/ru/accounting/reestr_audit/auditors/index.php?from4=1");
        }

        void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            var browser = sender as WebBrowser;

            if (null == browser) return;

            HtmlElement table = browser.Document.GetElementsByTagName("TABLE").Cast<HtmlElement>().First(el => el.GetAttribute("className") == "table tbl_1");
            List<HtmlElement> rows = table.GetElementsByTagName("TR").Cast<HtmlElement>().Where(el => el.GetAttribute("className") == "row_org").ToList();

            dataGridView1.DataSource = new BindingList<Cortage>(
                rows.Select(
                    el =>
                        {
                            List<HtmlElement> rawData = el.GetElementsByTagName("TD").Cast<HtmlElement>().ToList();
                            return new Cortage()
                                {
                                    ФамилияИмяОтчество = rawData[0].InnerText,
                                    НомерАттестата = rawData[1].InnerText,
                                    ОРНЗ = rawData[2].InnerText,
                                    ОГРН = rawData[3].InnerText,
                                    СаморегулируемаяОрганизацияАудиторов = rawData[4].InnerText,
                                    СубъектРоссийскойФедерации = rawData[5].InnerText
                                };
                        }).ToList());
        }
    }

    public class Cortage
    {
        public string ФамилияИмяОтчество { get; set; }
        public string НомерАттестата { get; set; }
        public string ОРНЗ { get; set; }
        public string ОГРН { get; set; }
        public string СаморегулируемаяОрганизацияАудиторов { get; set; }
        public string СубъектРоссийскойФедерации { get; set; }
    }
}
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718395
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79, Я так понимаю, это Visual Basic.Net, а мне необходим именно Visual Basic 2010 Express(так как он бесплатный).
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718400
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Visual Basic 2010 Express - это и есть .NET
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718420
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718421
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Spartak19,

У меня тоже не выходит((
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718424
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем это мне?
найдите уже наконец в сети конвертор C#>VB.NET
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718427
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
D129,

Куда пропал? Нам нужна твоя VB2010 express помощь)))
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718498
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visakArm79, Я так понимаю, это Visual Basic.Net, а мне необходим именно Visual Basic 2010 Express(так как он бесплатный).
Может, вы хоть учебники то почитаете, прежде чем что-то пытаться сделать?

1) Это C#
2) Конвертеры: http://yandex.ru/yandsearch?text=c# to vb.net converter&from=fx3&clid=1909644
3) Прикладываю архив с проектом. Надеюсь, разархивировать то сможете?
4) Spartak19, не надо пользоваться клонами. С трудом себе представляю ситуацию, что на форуме будет два пользователя с одинаковым заданием, одинаковыми затруднениями, одинаковым инструментом, одинаковым стилем речи и одинаковым уровнем знаний.

Я вам привел лишь пример, как парсить HTML через WebBrowser. Это демонстрация. Там нет даже обработки исключительных ситуаций.
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718577
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spartak19D129,

Куда пропал? Нам нужна твоя VB2010 express помощь)))
Работать заставили капиталисты проклятые.
:-)

На любой язык дотнета хорошо NET Reflector переводит.
Но только если сборка есть готовая - которая дллка или экзешник.
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718582
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Spartak 19 , Arm 79 , D 129

сначала думал - простые числа, не, не все. Но что-то тут с девяткой явно связано.
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718589
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Spartak 19 , Arm 79 , D 129

сначала думал - простые числа, не, не все. Но что-то тут с девяткой явно связано.


У меня все просто :-) 1979 г.р.
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718681
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
D129, Просто видишь, на VBA эту задачу решили легко, а вот VB - язык совершенно уже другой, поэтому нужна твоя помощь :)
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718766
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,
Фигасе ты их сразу в COM взаимодействие + LINQ запульнул... Это-же для неокрепших умов равнозначно выносу мозга и непониманию базовых основ и принципов...

Т.е. получится, что люди, не понимая того что и как на самом деле делается, просто будут копиманками...

Уж лучше пусть по полочкам пройдутся по всем фазам, а потом уже и к LINQ и прочим лямбдам, анонимным методам, автоклассам и т.д. подключаются...
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718788
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex KuznetsovФигасе ты их сразу в COM взаимодействие
Какой Com? Я ж не МСУ неокрепшие мозги взрывать :-) WebBrowser в стандартной панели Toolbox находится.
Ну а LINQ - буду я из-за них страдать, выписывая руками циклы. Я, кстати, в преподаватели не нанимался. Хотя мысль интересная... Может, действительно подработку себе небольшую организовать? :-)

В качестве демонстрашки проект пойдет.

Было бы хуже, если бы я дал пример на XPath (HtmlAgilityPack) или обрабатывал регэксами голый хтмл
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38718795
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Alex KuznetsovФигасе ты их сразу в COM взаимодействие
Какой Com? Я ж не МСУ неокрепшие мозги взрывать :-) WebBrowser в стандартной панели Toolbox находится.
...Компонент WebBrowser как раз и есть обёртка, которая через COM+ взаимодействие встраивает ишачка в приложение...
Ну да это ладно, пусть у ребяток от LINQ мозг покипит трохи, потом пойдут доку читать...

PS. Я конечно ничего плохого сказать не хочу, но меня воротит от синтаксиса VB, а посему предпочитаю си диез, это просто IMHO, а не разжигание холивара...
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38719240
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Spartak 19 , Arm 79 , D 129

сначала думал - простые числа, не, не все. Но что-то тут с девяткой явно связано.

И у меня просто - Д - это первая буква имени.
А 129 - у меня во взводе связи был личный позывной такой.
Когда "вышел в сеть" - решил везде использовать как ник.
:-)
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38719444
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
visak,

Ты разобрался?
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38719515
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Spartak19, нет, видимо руки кривые)
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38719548
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visak, Spartak19,
когда уже начнёте читать то о чём Вам пишут?
Открывайте MSDN и читайте до просветления...
Не ждите готовых ответов, ищите сами, направление Вам уже дали и не один раз...

Для парсинга строки можно использовать множество методов, начиная c банального IndexOf ...
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38719597
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visakSpartak19, нет, видимо руки кривые)
При чем здесь руки?

Вы просто недооценили обьем знаний, которые требуются для программирования на дотнет.

В VBA - для вас подготовлены уже готовые компоненты - типа браузера или документа эксель, А в дотнет - это надо уметь самому "подключать"... И понимать что такое обьекты, чем они отличаются от класса и тому подобное.

Судя по скрин шотам - вы не понимаете, почему скопированный код не компилируется.
Не зная, что такое неймспейс и partial класс - не починить.

Ну если хотябы понимаете, что такое метод - то копируйте маленькими кусочками в код, который у вас запускается.

Самый простой способ создать запускаемый код (свой) - это создать аппликацию типа WinForm, поместить на ней простую кнопку, и сделать на этой кнопке даблклик.

Сгенерируется обработчик нажатия кнопки - вот в него и копируйте примеры....

Скажем - обьявить и создать обьект веббраузера, вызвать его функцию navigate с нужным адресом, выйти из обработчика...
и ага, нужно дать время браузеру перейти на страницу и загрузить ее.
Значит добавляем еще одну кнопку, и уже по нажатию на нее - ищем в обьекте (раз, и походу выучили что такое область видимости переменных и переменные уровня класса :-) ) табличку. Находим, создаем грид и...

Счастливого вам творчества.

:-)

Дальше решаем проблемы по мере поступления.
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38721596
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
D129, Arm79,


Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Linq
Imports System.Windows.Forms
Namespace WindowsFormsApplication1




    Partial Public Class Form1
        Inherits Form
        Public Sub New()
            InitializeComponent()

            AddHandler WebBrowser1.DocumentCompleted, AddressOf webBrowser1_DocumentCompleted
            WebBrowser1.Navigate("http://www.minfin.ru/ru/accounting/reestr_audit/auditors/index.php?from4=1")
        End Sub

        Private Sub webBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
            Dim browser = TryCast(sender, WebBrowser)

            If browser Is Nothing Then
                Return
            End If

            Dim table As HtmlElement = browser.Document.GetElementsByTagName("TABLE").Cast(Of HtmlElement)().First(Function(el) el.GetAttribute("className") = "table tbl_1")
            Dim rows As List(Of HtmlElement) = table.GetElementsByTagName("TR").Cast(Of HtmlElement)().Where(Function(el) el.GetAttribute("className") = "row_org").ToList()

            DataGridView1.DataSource = New BindingList(Of Cortage)(rows.[Select](Function(el)
                                                                                     Dim rawData As List(Of HtmlElement) = el.GetElementsByTagName("TD").Cast(Of HtmlElement)().ToList()
                                                                                     Return New Cortage() With { _
                                                                                      .ФамилияИмяОтчество = rawData(0).InnerText, _
                                                                                       .НомерАттестата = rawData(1).InnerText, _
                                                                                       .ОРНЗ = rawData(2).InnerText, _
                                                                                       .ОГРН = rawData(3).InnerText, _
                                                                                       .СаморегулируемаяОрганизацияАудиторов = rawData(4).InnerText, _
                                                                                       .СубъектРоссийскойФедерации = rawData(5).InnerText _
                                                                                     }

                                                                                 End Function).ToList())
        End Sub
        Friend WithEvents DataGridView1 As System.Windows.Forms.DataGridView
        Friend WithEvents WebBrowser1 As System.Windows.Forms.WebBrowser

        Private Sub InitializeComponent()
            Me.DataGridView1 = New System.Windows.Forms.DataGridView()
            Me.WebBrowser1 = New System.Windows.Forms.WebBrowser()
            CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).BeginInit()
            Me.SuspendLayout()
            '
            'DataGridView1
            '
            Me.DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
            Me.DataGridView1.Location = New System.Drawing.Point(540, 51)
            Me.DataGridView1.Name = "DataGridView1"
            Me.DataGridView1.Size = New System.Drawing.Size(240, 348)
            Me.DataGridView1.TabIndex = 0
            '
            'WebBrowser1
            '
            Me.WebBrowser1.Location = New System.Drawing.Point(77, 51)
            Me.WebBrowser1.MinimumSize = New System.Drawing.Size(20, 20)
            Me.WebBrowser1.Name = "WebBrowser1"
            Me.WebBrowser1.Size = New System.Drawing.Size(250, 383)
            Me.WebBrowser1.TabIndex = 1
            '
            'Form1
            '
            Me.ClientSize = New System.Drawing.Size(906, 507)
            Me.Controls.Add(Me.WebBrowser1)
            Me.Controls.Add(Me.DataGridView1)
            Me.Name = "Form1"
            CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).EndInit()
            Me.ResumeLayout(False)

        End Sub

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        End Sub
    End Class

    Public Class Cortage
        Public Property ФамилияИмяОтчество() As String
            Get
                Return m_ФамилияИмяОтчество
            End Get
            Set(ByVal value As String)
                m_ФамилияИмяОтчество = value
            End Set
        End Property
        Private m_ФамилияИмяОтчество As String
        Public Property НомерАттестата() As String
            Get
                Return m_НомерАттестата
            End Get
            Set(ByVal value As String)
                m_НомерАттестата = value
            End Set
        End Property
        Private m_НомерАттестата As String
        Public Property ОРНЗ() As String
            Get
                Return m_ОРНЗ
            End Get
            Set(ByVal value As String)
                m_ОРНЗ = value
            End Set
        End Property
        Private m_ОРНЗ As String
        Public Property ОГРН() As String
            Get
                Return m_ОГРН
            End Get
            Set(ByVal value As String)
                m_ОГРН = value
            End Set
        End Property
        Private m_ОГРН As String
        Public Property СаморегулируемаяОрганизацияАудиторов() As String
            Get
                Return m_СаморегулируемаяОрганизацияАудиторов
            End Get
            Set(ByVal value As String)
                m_СаморегулируемаяОрганизацияАудиторов = value
            End Set
        End Property
        Private m_СаморегулируемаяОрганизацияАудиторов As String
        Public Property СубъектРоссийскойФедерации() As String
            Get
                Return m_СубъектРоссийскойФедерации
            End Get
            Set(ByVal value As String)
                m_СубъектРоссийскойФедерации = value
            End Set
        End Property
        Private m_СубъектРоссийскойФедерации As String
    End Class
End Namespace




Всё работает. Но при запуске приложения появляется новая форма, как запустить, и почему так не приложу ума
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38721597
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А при запуская появляется новая форма и всё.
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38721788
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visak,
Вот честно, за получение страницы и её парсинг в конструкторе, я бы руки отшибал.
Нельзя что-ли вынести это в отдельный поток, который запускается по нажатию кнопки?
Да ладно в поток, просто по нажатию кнопки...
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38721867
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex KuznetsovНельзя что-ли вынести это в отдельный поток, который запускается по нажатию кнопки?
Да ладно в поток, просто по нажатию кнопки...

Какой еще поток ?!! , сбавьте темп.
:-)
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38721868
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visakА при запуская появляется новая форма и всё.

У формы есть такой эвент - FormLoaded.

Перенесите обращение к веб сайту туда, в обработчик этого эвента.
Конструктор формы не может ее подготовить полностью, так как форма - не примитивный класс, а визуальный компонент.
Но вот когда вызывается FormLoaded - тогда уже точно все готово к работе.
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38721983
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D129Alex KuznetsovНельзя что-ли вынести это в отдельный поток, который запускается по нажатию кнопки?
Да ладно в поток, просто по нажатию кнопки...

Какой еще поток ?!! , сбавьте темп.
:-)
Ну так я вроде как и сбавил темп : Alex Kuznetsov...Да ладно в поток, просто по нажатию кнопки ... :-)
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38722081
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
D129, Всё получилось и загрузилось, но почему то он загружал новую форму, потому что Namespace WindowsFormsApplication1 мешал ему работать, как только убрал это объявление, всё сразу заработало, теперь буду работать с таблицей, а именно с DatagridView, конечно вопросы будут, и очень интересными(буду работать с закраской ячеек, счет по ячейками и т.д. ) =)
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38722982
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79, D129
С помощью одной кнопки загружается браузер, а как сделать так чтобы, с помощью второй кнопки уже загружалась таблица, отнюдь не желает слушаться,
Код: java
1.
AddHandler WebBrowser1.DocumentCompleted, AddressOf webBrowser1_DocumentCompleted

, пихал в отдельную кнопочку, но не хочет.... (
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38722985
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока что разобрался, получилось =)
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38723404
Spartak19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
visak,

Подскажите как изменится код если в тег <td> добавится тег <a>?
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38723772
visak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex Kuznetsov, D129

Всё получилось, с сайтом, но вот из этой таблицы, прикладываю файл, чисто по тегам если, то там алгоритм другой, подскажи пожалуйтса, где и как надо изменить код, чтобы он загрузил данные из этой таблицы? Буду очень очень благодарен.
...
Рейтинг: 0 / 0
Поиск и вставка конкретной таблицы в VB 2010
    #38724052
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
visakAlex Kuznetsov, D129

Всё получилось, с сайтом, но вот из этой таблицы, прикладываю файл, чисто по тегам если, то там алгоритм другой, подскажи пожалуйтса, где и как надо изменить код, чтобы он загрузил данные из этой таблицы? Буду очень очень благодарен.
А изучить структуру тэга "<table...>...</table>" из предоставленного файла не пробовали?
Что не получается конкретно?
Код, который не отрабатывает как ожидается приведите...
...
Рейтинг: 0 / 0
57 сообщений из 57, показаны все 3 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поиск и вставка конкретной таблицы в VB 2010
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]