powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Удаление строк в Excel (на VB.NET) где встречается слова Test
12 сообщений из 12, страница 1 из 1
Удаление строк в Excel (на VB.NET) где встречается слова Test
    #38708165
shoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно удалить строк (все сразу, неиспользуя цикл) где А столбец содержит слова Test.
например как в СКЛ: delete from XXX where A1 in ('Test')
только на VB.NET
если у кого есть варианты и примеры помогите пожалуйста
спасибо
...
Рейтинг: 0 / 0
Удаление строк в Excel (на VB.NET) где встречается слова Test
    #38708212
shoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shoh,
у меня есть большой файл ктр. содержит около 400тыс строк
столбец А1 содержит инфо название товаров (20-30 название) в разбросе
мне надо удалить из этого списка всех товаров (строк) ктр. мне нужно
а по остальным оставшимся строками работать.

как можно программно в VB.NET удалить этих не нужных строк (без чикла, потому что у меня сейчас есть вариант с циклом, но это пользователю не удобно т.е. на обработку уходит много времени)?
...
Рейтинг: 0 / 0
Удаление строк в Excel (на VB.NET) где встречается слова Test
    #38708248
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shoh,

так вроде к Excel можно обратиться через какой-то провайдер и работать с ним с помощью SQL.
...
Рейтинг: 0 / 0
Удаление строк в Excel (на VB.NET) где встречается слова Test
    #38708250
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shohбольшой файл ктр. содержит около 400тыс строк
В любом случае вы сами или кто-то за вас все равно будет в цикле обрабатывать данные. Так что 400 000 строк все равно будет долго.
...
Рейтинг: 0 / 0
Удаление строк в Excel (на VB.NET) где встречается слова Test
    #38708404
shoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,
...
Рейтинг: 0 / 0
Удаление строк в Excel (на VB.NET) где встречается слова Test
    #38708438
Syrex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так долго будет работать ещё по тому, что тут не in, а Like
...
Рейтинг: 0 / 0
Удаление строк в Excel (на VB.NET) где встречается слова Test
    #38708444
Syrex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажите код, как работаете с Excel ?
...
Рейтинг: 0 / 0
Удаление строк в Excel (на VB.NET) где встречается слова Test
    #38708460
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79так вроде к Excel можно обратиться через какой-то провайдер и работать с ним с помощью SQL.можно обратиться через ODBC, но это только readonly

Если у вас в файле 400тыс строк, это надо в консерватории что-то править (с).
Вы же их не руками туда забиваете, они туда как-то попадают.
...
Рейтинг: 0 / 0
Удаление строк в Excel (на VB.NET) где встречается слова Test
    #38708530
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProArm79так вроде к Excel можно обратиться через какой-то провайдер и работать с ним с помощью SQL.можно обратиться через ODBC, но это только readonly

Если у вас в файле 400тыс строк, это надо в консерватории что-то править (с).
Вы же их не руками туда забиваете, они туда как-то попадают.

http://stackoverflow.com/questions/15844633/using-excel-as-an-odbc-database
...
Рейтинг: 0 / 0
Удаление строк в Excel (на VB.NET) где встречается слова Test
    #38708576
Pavel55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, тут надо думать не над обработкой данных в Excel, а над правильным запросом из базы, чтобы сразу убрать все строки с Test.

Но если выхода нет и всё-таки нужно обрабатывать данные в Excel могу предложить такой способ.

Нужно добавить ссылку на Microsoft Excel X.X Object Library в меню Project - Add References... - COM - Type Libraries

Код: 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.
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim xlApp As New Excel.Application
        Dim xlWB As Excel.Workbook
        Dim xlSht As Excel.Worksheet
        Dim iLastRow, iLastCol As Integer
        Dim arrData(,) As Object
        Dim CleanArray(,) As Object
        Dim iRow, iCol, i As Integer

        xlWB = xlApp.Workbooks.Open("C:\Temp\Test.xlsx") 'укажите путь к вашему файлу Excel
        xlSht = xlWB.Worksheets("Лист1") 'подставьте имя вашего листа с данными
        With xlSht
            iLastRow = .Cells(.Rows.Count, "A").end(-4162).row 'последняя заполненная сторка в столбце А
            iLastCol = .Cells(1, .Columns.Count).end(-4159).column 'последний заполненный столбец в 1-й строке
            arrData = .Range("A1", .Cells(iLastRow, iLastCol)).Value 'берём все данные с листа в массив
        End With

        ReDim CleanArray(arrData.GetUpperBound(0), arrData.GetUpperBound(1)) 'создаём пустой массив

        For iRow = 1 To arrData.GetUpperBound(0)
            If arrData(iRow, 1) <> Nothing Then 'если нет данных в 1-м столбце, то пропускаем всю строку
                If arrData(iRow, 1).ToString.ToLower.Contains("test") = False Then
                    i += 1 'номер стоки в чистом массиве
                    For iCol = 1 To arrData.GetUpperBound(1)
                        CleanArray(i, iCol) = arrData(iRow, iCol) 'перекладываем данны в чистый массив
                    Next iCol
                End If
            End If
        Next iRow

        With xlSht
            .Cells.Clear() 'удаляем все данные с листа
            .Range("A1").Resize(CleanArray.GetUpperBound(0), CleanArray.GetUpperBound(1)).Value = CleanArray
            .Rows(1).delete() 'удаляем пустую 1-ю строку, т.к. наш массив начитался с 0 индекса
            .Columns(1).delete() 'удаляем пустой 1-й столбец, т.к. наш массив начитался с 0 индекса
        End With
        xlWB.Close(SaveChanges:=True) 'сохраняем файл и закрываем его
        xlApp.Quit() 'закрываем Excel
        MessageBox.Show("Обработка файла завершена!", "Конец", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Sub

End Class
...
Рейтинг: 0 / 0
Удаление строк в Excel (на VB.NET) где встречается слова Test
    #38709074
shoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel55,

спасибо за код, сейчас поробую
...
Рейтинг: 0 / 0
Удаление строк в Excel (на VB.NET) где встречается слова Test
    #38709229
shoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel55,

данные удаляются
но плохо что все данные сразу удаляются, а мне нужно удалять те строки ктр. ячейка (столбец) А содержит слово test или ААА и т.д.
например имею такую строку в ячейке А1, А2, А3 и т.д.:

(А1)AAA,time,00:00:31
(А2)AAA,date,23-JUL-2014
(А3)AAA,interval,180
(А4)BBBB,0019,hdisk44,unknown,RAID
(А5)BBBB,0020,hdisk58,unknown,RAID
(А6)BBBB,0021,hdisk56,unknown,RAID
(А7)CPU11,T0060,0.1,1.0,0.0,98.9
(А8)CPU12,T0060,0.5,1.0,0.0,98.5
(А9)CPU13,T0060,76.2,9.3,0.0,14.5
(А10)Test,T0060,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1,0.0,0.0,0.0,
(А11)Test,T0060,0.0,0.0,0.0,1050.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
(А12)Test,T0060,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,

т.е. в одной ячейке несколько слов отделенные через ","
мне нужно как то выбрать те строки ктр содержит слово test или ААА или что то еще другой

Спасибо за помошь
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Удаление строк в Excel (на VB.NET) где встречается слова Test
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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