Очистить файл Excel после одного часа моделирования anylogic

Я переношу некоторые данные из Anylogic в Excel. Это происходит каждый раз, когда агент входит в блок ожидания, и я сохраняю его идентификатор, время обработки и дату выполнения. Что будет выглядеть так:

Я БЫ п г 1 5 7 2 3 8 3 6 15

Через час я хотел бы, чтобы файл Excel был очищен (за исключением заголовков «ID», «p» и «d» (через час заказы освобождаются из блока ожидания).

Чтобы в следующем часе в файле Excel были только данные по заказам, пришедшим во второй час

Я БЫ п г 4 7 7 5 10 24 6 4 13

Я попытался сделать это с помощью события, вызванного через час, со следующим кодом, который я нашел в ответе на аналогичный вопрос:

for (int i=0;i<15;i++){      //for each column  
    for (int j=2;j<50000;j++){   //for each row 
            ALtoGA.clearCell(1,j,i);   
    }             
}

Однако это очищает только записи во второй строке, и я хочу, чтобы все мои записи были очищены. Кто-нибудь знает как это сделать?

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
56
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я не буду отвечать на этот вопрос, вместо этого я скажу вам, что писать и удалять вещи из файла Excel - плохая практика...

Вместо этого вам следует создать класс, который будет иметь параметр для каждого столбца.

public class ExportInfo(){
    public int id;
    public int P;
    public int d;

    public ExportInfo(int id,int P, int d) { 
           this.id=id;
           this.P=P;
           this.d=d;
    }

}

Тогда вам нужна коллекция, такая как linkedList с элементами типа ExportInfo

Затем вы просто добавляете строки в этот связанный список

yourList.add(new ExportInfo(a,b,c));

тогда, когда вы хотите удалить все

yourList.clear();

Затем вы можете просто экспортировать в Excel, когда он действительно представляет для вас ценность:

int row=2;
for(ExportInfo e : yourList){
      col=1;
      ALtoGA.setCellNumericValue(e.id,1,row,col++);
      ALtoGA.setCellNumericValue(e.P,1,row,col++);
      ALtoGA.setCellNumericValue(e.d,1,row,col++);
      row++;
}
ALtoGA.writeFile();

что-то вроде этого

Чтобы удалить все данные из таблицы, вы можете вызвать 'deleteFrom(tableName).execute();'

Но вы не должны писать или удалять из таблиц во время выполнения, это излишне замедляет работу вашей модели.

Другие вопросы по теме