Замена ячеек в таблице

  • Автор темы Автор темы stmult
  • Дата начала Дата начала

stmult

Client
Регистрация
19.11.2013
Сообщения
96
Реакции
37
Баллы
18
Есть таблица, состоит из 6 столбцов и большого количества строк от 1000 до 20000. Иногда будет возникать ситуация при которой надо будет найти в столбце А все ячейки, соответствующие значению переменной. Такая ячейка будет примерно в каждой двадцатой строке. Вот надо будет найти все эти ячейки и заменить в них значение на значение другой переменной. При этом остальную часть строки (это 5 других столбцов) трогать нельзя. Не могу придумать как это сделать. Чувствую, что скорее всего средствами C# , но абсолютно не имею знаний для этого) Помогите пожалуйста.
 
Можно стандартными.
Инициализируете счетчик, устанавливаете его в номер строки, которую брать. Берёте в этой строке первую ячейку, проверяете регуляркой есть ли там то, что необходимо. Если есть, то Операция над таблицами - Запись в ячейку - номер строки известен = счетчику, ячейка А, и записываете в неё то, что необходимо, после чего продолжаете цикл до завершения строк в файле.
 
попробуйте так

var tab = project.Tables["Таблица 1"];
var pattern = project.Variables["переменная какая -то"].Value;
var setdata = project.Variables["переменная какая -то2"].Value;

for(int i = 0;i<tab.RowCount;i++)
{
if(tab.GetCell("A",i)==pattern)
{
tab.SetCell("A",i) = setdata;
}
}
return 0;
 
  • Оценить
Реакции: stmult
Тестер не использует переменные проекта. нужно гонять код в самом PM
 
Нет всё равно не получается. пишет - действие не выполнено.
 
а что еще пишет? по аглицки должен в логах ругаться
 
Если честно не уверен, что вообще правильно настроил, так как у меня проект даже стартовать отказывается) Но выводит вот такое http://joxi.ru/E9K5UhjKTJAzdaCAd8s
 
Да... я проверил, там немного синтаксис другой. Замените строчку на
tab.SetCell("A",i,setdata);
 
  • Оценить
Реакции: stmult
Спасибо большое , всё работает! Скажите в можно ли дописать в этот скрипт как-то условие, что если была произведена хоть одна замена, то в переменную результата записывалось бы значение 1 например, а если ни одной замены не было, то 0. ?
 
var tab = project.Tables["Таблица 1"];
var pattern = project.Variables["переменная какая -то"].Value;
var setdata = project.Variables["переменная какая -то2"].Value;
int counter = 0;

for(int i = 0;i<tab.RowCount;i++)
{
if(tab.GetCell("A",i)==pattern)
{
tab.SetCell("A",i,setdata);
counter ++;
}
}
if(counter ==0)
{
return 0;
}else
{
return 1;
}
вы это имели ввиду?
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)