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

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

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

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

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

http://stackoverflow.com/questions/15844633/using-excel-as-an-odbc-database
...
Рейтинг: 0 / 0
29.07.2014, 21:32
    #38708576
Pavel55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление строк в Excel (на VB.NET) где встречается слова Test
Да, тут надо думать не над обработкой данных в 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
30.07.2014, 13:49
    #38709074
shoh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление строк в Excel (на VB.NET) где встречается слова Test
Pavel55,

спасибо за код, сейчас поробую
...
Рейтинг: 0 / 0
30.07.2014, 16:11
    #38709229
shoh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление строк в Excel (на VB.NET) где встречается слова Test
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
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Удаление строк в Excel (на VB.NET) где встречается слова Test / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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