при копировании данных из одной таблицы excel в другую данные зависают в памяти

avgur

Новичок
Регистрация
15.07.2017
Сообщения
6
Благодарностей
0
Баллы
1
при копировании определенных ячеек одной таблицы в другую копирование выполняется через раз. Копирование происходит с определенным условием, и в какой то момент условие перестает выполняться. ставим пустую таблицу - все равно не выполняется. убираем условие и вмести определенного набора строк, например 100, в таблицу переносится 300 строк, которые вероятно, зависают в памяти и мешают выполняться условию, а когда условия нет, соответственно записываются все. как быть в такой ситуации. с excel работаю как var table = project.Tables["tab"]
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Там есть свои тонкости при работе с таблицами в зенке. Они чуть разнятся в зависимости от того была ли прикреплена таблица к файлу, или все время только в памяти шаблона висит.
Главное правило, которое вроде нигде не описано: сначала надо инициализировать определенный размер таблицы, так как если захочем записать в ячейку которая находится за пределами существующего размера таблицы (допустим в «строке №2, столбца №5», а таблица у нас была «4х4»), то операции записи обычно игнорируется. Надо сначала создать пустой недостающий столбцец\строку, а уже тогда заполнять их ячейки значениями.
 
Последнее редактирование:

avgur

Новичок
Регистрация
15.07.2017
Сообщения
6
Благодарностей
0
Баллы
1
строку добавляю методом addrow(IEnumerable). С записью в таблицу проблем нет. Проблема в том, что таблица по факту может быть пустая, а операция сравнения сравнивает не со значениями из таблицы, а со значениями из памяти. Можно ли как то в памяти очистить эти значения? метод clear удаляет таблицу
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Я читал читал, да так и не понял сути. Вы редактируете прикрепленные файлы другими процессами во время выполнения шаблона, и хотите, чтобы шаблон быстро реагировал на изменения, ли как?
Прикрепите лучше здесь файл с шаблоном и таблицами, чтобы желающие могли воспроизвести у себя процесс и помочь. А то на пальцах сложно такое объяснить.
 

avgur

Новичок
Регистрация
15.07.2017
Сообщения
6
Благодарностей
0
Баллы
1
задача:
из таблицы db2 найти все уникальные логины, которых нет в таблице 3 и у которых параметр 3 имеет значение "1"
перенести найденные логины в таблицу 3
заполнить поле 4 таблицы 3всеми параметрами 1 таблицы 2 через ";"
заполнить оставшиеся поля таблицы 3 значениями из таблицы 1

первая строка в таблице 3 заполнена в соответствии с правилом
таблицы имеют расширение
1-xls
2-xls
3-xlsx
 

Вложения

  • 17,2 КБ Просмотры: 137
  • 61,5 КБ Просмотры: 197
  • 8,5 КБ Просмотры: 201
  • 52,5 КБ Просмотры: 194

avgur

Новичок
Регистрация
15.07.2017
Сообщения
6
Благодарностей
0
Баллы
1
for (int i = 0; i < botBase.RowCount; i++){
botId = botBase.GetCell(0,i).ToString();
botInGroup = (botBase.GetCell(3,i).ToString() == "1");
botCompare = false;

//Global.SpecialForms.AlertNotificator.Instance.DisplayAlert("Заголовок",statisticBase.RowCount.ToString());
for (int j = 0; j < statisticBase.RowCount; j++){
string statBotId = statisticBase.GetCell(1,j).ToString();
if (botId == statBotId) {
botCompare = true;
compare = 1;
}
}
if (!botCompare){
list[1] = botId;
statisticBase.AddRow(list.AsEnumerable());
list[1] = "";
list[15] = "";
}
}


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

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