Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/40: Рейтинг темы: голосов - 40, средняя оценка - 4.85
0 / 0 / 2
Регистрация: 18.01.2016
Сообщений: 220
1

Удаление строк в таблице Excel

27.06.2017, 20:37. Показов 8060. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста как удалить из таблицы Excel те строки, в которых в столбце А больше пяти символов?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2017, 20:37
Ответы с готовыми решениями:

Макрос: удаление строк в таблице Excel
День добрый! Возникла такая задачка: В последнем столбце таблице будет кнопка, на которой будет...

Удаление строк в таблице
Здравствуйте есть макрос, который удаляет строки, если в столбце "B" шрифт ячейки красного цвета:...

Удаление строк в таблице
Требуется удалить из таблицы последние записи, количество которых находится в переменной $n_del: ...

Удаление строк в таблице
Ещё раз всем привет! Каким образом можно удалять строки в исходной таблице? У меня есть...

4
управление сложностью
1687 / 1300 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
27.06.2017, 22:00 2
Построчно проверяете каждое значения в столбце А, как только нашли значение выполняющее условию - запоминаете индекс строки и далее удаляете ее. Примеров по работе с экселем на форуме предостаточно.
0
997 / 356 / 135
Регистрация: 27.10.2006
Сообщений: 764
27.06.2017, 22:11 3
Лучший ответ Сообщение было отмечено frank2 как решение

Решение

frank2, приблизительно так

добавьте эту строку в самом верху кода
using Excel = Microsoft.Office.Interop.Excel;

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private void button1_Click(object sender, EventArgs e)
        {
            Excel.Application xlApp = new Excel.Application(); //Excel
            Excel.Workbook xlWB; //рабочая книга            
            Excel.Worksheet xlSht; //лист Excel            
 
            xlWB = xlApp.Workbooks.Open(@"G:\Test Excel File.xlsx"); //название файла Excel
            xlSht = xlWB.Sheets["Лист1"]; //название листа или можно так если лист первый по порядку - xlWB.Sheets[1];
            int iLastRow = xlSht.Cells[xlSht.Rows.Count, "A"].End[Excel.XlDirection.xlUp].Row;  //последняя заполненная строка в столбце А
 
            for (int i = iLastRow; i >= 1; i--)
            {
                if (xlSht.Cells[i, 1].Value.ToString().Length > 5)
                {
                    xlSht.Rows[i].Delete();
                }
            }
            //xlWB.Close(true); //закрываем книгу, сохраняя изменения                       
            xlApp.Visible = true; //отображаем Excel           
        }
2
0 / 0 / 2
Регистрация: 18.01.2016
Сообщений: 220
28.06.2017, 18:35  [ТС] 4
Спасибо! а можно как то ускорить, а то очень уж медленно работает
0
997 / 356 / 135
Регистрация: 27.10.2006
Сообщений: 764
28.06.2017, 18:58 5
Можно, в начале кода напишите

xlApp.ScreenUpdating = false;

А в конце кода

xlApp.ScreenUpdating = true;

А если на листе много формул, то можно отключить пересчет формул

P.S. пишу с телефона, поэтому 100% гарантию не даю)
0
28.06.2017, 18:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.06.2017, 18:58
Помогаю со студенческими работами здесь

Удаление незаполненных строк в таблице
Добрый день. Есть форма html(таблица), куда заносятся данные после расчетов. Проблема в том что,...

Удаление в таблице пустых строк
Здравствуйте! У меня есть документ, в котором много таблиц (на каждой странице - новая таблица,...

Удаление пустых строк в таблице
Помогите макросом, пожалуйста, вот таким вот:) те что предоставлены на сайте не подходят к данной...

создание и удаление строк в таблице
Столкнулся с такой ситуацией. Есть таблица. добавляю в неё строку. Не вызывая Acceptchanges()...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru